refactor(skills): remove drafting and grilling skills
This commit is contained in:
@@ -1 +0,0 @@
|
|||||||
../../src/skills/grill
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../src/skills/to-document
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
---
|
|
||||||
name: grill
|
|
||||||
description: Stress-test a plan, decision, or design through a one-question-at-a-time interview. Use when the user asks to grill, stress-test, pressure-test, challenge, interrogate, or poke holes in a plan.
|
|
||||||
---
|
|
||||||
|
|
||||||
# grill
|
|
||||||
|
|
||||||
Interview the user until the session has no open or blocked questions.
|
|
||||||
Open questions define the ending condition for the grill session.
|
|
||||||
Blocked questions track known decisions with unsettled prerequisites.
|
|
||||||
|
|
||||||
Do not begin implementation during or after grill without an explicit user instruction.
|
|
||||||
A completed grill summary is not an instruction to build.
|
|
||||||
|
|
||||||
## Run the interview
|
|
||||||
|
|
||||||
1. Prepare the grill.
|
|
||||||
Read the conversation, files, and docs that can settle facts or reveal constraints.
|
|
||||||
Resolve factual questions yourself when tools can answer them.
|
|
||||||
Do not ask the user for facts you can find.
|
|
||||||
Build the required-question set from the known plan or idea.
|
|
||||||
Put ready questions under `Open questions:`.
|
|
||||||
Put known questions with unsettled prerequisites under `Blocked questions:`.
|
|
||||||
|
|
||||||
Finish when both sections contain every known required question.
|
|
||||||
|
|
||||||
2. Start the interview.
|
|
||||||
Show `Open questions:` and `Blocked questions:` in short form.
|
|
||||||
Include titles only, not full question bodies.
|
|
||||||
Use Markdown list items in both sections.
|
|
||||||
Mark each initial item with `- [ ]`.
|
|
||||||
Ask exactly one numbered question in the same turn.
|
|
||||||
The question title must match an item under `Open questions:`.
|
|
||||||
|
|
||||||
Finish when the interview has started with exactly one numbered question.
|
|
||||||
|
|
||||||
3. Process the answer.
|
|
||||||
Account for the user's answer before asking another question.
|
|
||||||
Resolve, update, remove, unblock, or add questions as the answer requires.
|
|
||||||
Use `- [ ]` for unchanged unresolved questions.
|
|
||||||
Use `- [+]` for questions added by the latest answer.
|
|
||||||
Use `- [u]` for questions updated by the latest answer.
|
|
||||||
Use `- [x]` for questions resolved by the latest answer.
|
|
||||||
Use `- [-]` for questions removed by the latest answer.
|
|
||||||
Include a cause note for each `- [+]`, `- [u]`, and `- [-]` change.
|
|
||||||
Indent cause notes by two spaces under the changed question.
|
|
||||||
Show `- [+]`, `- [u]`, `- [x]`, and `- [-]` for one turn only.
|
|
||||||
After that turn, keep an updated question visible as `- [ ]`.
|
|
||||||
After that turn, remove resolved and removed questions from the visible list.
|
|
||||||
Move unblocked questions from `Blocked questions:` to `Open questions:` with `- [u]`.
|
|
||||||
Do not use `- [+]` for unblocked questions because they are not new.
|
|
||||||
Add questions only when the latest answer directly causes them.
|
|
||||||
When the user extends scope instead of answering, account for the new question before pursuing it.
|
|
||||||
Do not add optional follow-up questions to either section.
|
|
||||||
Put optional follow-up questions in the final summary instead.
|
|
||||||
Resolve newly answerable facts yourself.
|
|
||||||
|
|
||||||
Finish when every list change has an explicit marker and required cause note.
|
|
||||||
|
|
||||||
4. Ask the next question.
|
|
||||||
Show `Open questions:` and `Blocked questions:` on every active grill turn.
|
|
||||||
Keep `- [ ]` items visible every turn.
|
|
||||||
Preserve agent judgment when the user reframes or invalidates a question.
|
|
||||||
Show the resulting list change instead of following a rigid reframe algorithm.
|
|
||||||
If the user catches incorrect accounting, briefly explain the error.
|
|
||||||
Then show the corrected question sections.
|
|
||||||
Ask exactly one numbered question when `Open questions:` contains an unresolved item.
|
|
||||||
The question title must match an item currently shown under `Open questions:`.
|
|
||||||
Give concrete options with trade-offs.
|
|
||||||
Label options with `A.`, `B.`, `C.`, and later letters.
|
|
||||||
Use the same labels in the recommendation.
|
|
||||||
Give a recommendation and rationale.
|
|
||||||
Probe vague words, overloaded terms, and hidden assumptions.
|
|
||||||
Use concrete scenarios to test concept boundaries and edge cases.
|
|
||||||
When code contradicts the user's claim, quote both the claim and the code behavior.
|
|
||||||
If the turn includes a correction, file edit, apology, or explanation, still end with the next numbered question.
|
|
||||||
|
|
||||||
Finish when the turn ends with the next numbered question.
|
|
||||||
|
|
||||||
5. Close or pause.
|
|
||||||
Close when `Open questions:` and `Blocked questions:` are empty.
|
|
||||||
Output a concise summary of every decision reached.
|
|
||||||
Include optional follow-up questions that were not added to either section.
|
|
||||||
Do not act on the summary unless the user gives a new implementation instruction.
|
|
||||||
If the user changes tasks, state that grill is paused.
|
|
||||||
End the turn with the final decision summary or the pause statement.
|
|
||||||
|
|
||||||
Finish when the summary is delivered or grill is explicitly paused.
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
# Document Format
|
|
||||||
|
|
||||||
## Template
|
|
||||||
|
|
||||||
```md
|
|
||||||
## Problem Statement
|
|
||||||
|
|
||||||
The problem that the user is facing, from the user's perspective.
|
|
||||||
|
|
||||||
## Solution
|
|
||||||
|
|
||||||
The solution to the problem, from the user's perspective.
|
|
||||||
|
|
||||||
## User Stories
|
|
||||||
|
|
||||||
An extensive, numbered list of user stories, covering all aspects of the feature. Each user story should be in the format of:
|
|
||||||
|
|
||||||
1. As an <actor>, I want a <feature>, so that <benefit>
|
|
||||||
|
|
||||||
<user-story-example>
|
|
||||||
1. As a mobile bank customer, I want to see balance on my accounts, so that I can make better informed decisions about my spending
|
|
||||||
</user-story-example>
|
|
||||||
|
|
||||||
## Implementation Decisions
|
|
||||||
|
|
||||||
A list of implementation decisions that were made. This can include:
|
|
||||||
|
|
||||||
- The modules that will be built/modified
|
|
||||||
- The interfaces of those modules that will be modified
|
|
||||||
- Technical clarifications from the developer
|
|
||||||
- Architectural decisions
|
|
||||||
- Schema changes
|
|
||||||
- API contracts
|
|
||||||
- Specific interactions
|
|
||||||
|
|
||||||
## Testing Decisions
|
|
||||||
|
|
||||||
A list of testing decisions that were made. Include:
|
|
||||||
|
|
||||||
- A description of what makes a good test (only test external behavior, not implementation details)
|
|
||||||
- Which modules will be tested
|
|
||||||
- Prior art for the tests, that is, similar tests in the codebase
|
|
||||||
|
|
||||||
## Out of Scope
|
|
||||||
|
|
||||||
A description of the things that are out of scope for this spec.
|
|
||||||
|
|
||||||
## Further Notes
|
|
||||||
|
|
||||||
Any further notes about the feature.
|
|
||||||
```
|
|
||||||
|
|
||||||
## Rules
|
|
||||||
|
|
||||||
- **Do not include specific file paths or code snippets.**
|
|
||||||
They can become outdated quickly.
|
|
||||||
Exception: include a prototype snippet when it records a decision more precisely than prose.
|
|
||||||
Examples include a state machine, reducer, schema, or type shape.
|
|
||||||
Inline the snippet in the relevant implementation decision.
|
|
||||||
Note briefly that the snippet came from a prototype.
|
|
||||||
Trim the snippet to the decision-rich parts.
|
|
||||||
Do not include a working demo.
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
---
|
|
||||||
name: to-document
|
|
||||||
description: Draft a requested summary, specification, plan, decision record, or similar document from conversation and repository context.
|
|
||||||
---
|
|
||||||
|
|
||||||
Do not start with an interview when the conversation gives a usable subject.
|
|
||||||
Ask before drafting only when the conversation lacks a usable subject.
|
|
||||||
|
|
||||||
Do not put draft contents in the chat response.
|
|
||||||
Always persist the draft to a file.
|
|
||||||
|
|
||||||
Do not implement the draft contents unless the operator gives a separate instruction.
|
|
||||||
Treat a completed draft as documentation, not an instruction to build.
|
|
||||||
|
|
||||||
## Process
|
|
||||||
|
|
||||||
1. Identify the subject.
|
|
||||||
Use the conversation as the primary source.
|
|
||||||
If the conversation lacks a usable subject, ask what the document is about.
|
|
||||||
Do not ask clarifying questions before drafting when a usable subject exists.
|
|
||||||
|
|
||||||
Finish when you have a subject or a question that requests the missing subject.
|
|
||||||
|
|
||||||
2. Gather repository facts that the draft needs.
|
|
||||||
Inspect files when repository details matter.
|
|
||||||
Do not invent modules, paths, commands, flows, contracts, or conventions.
|
|
||||||
Distinguish confirmed facts from assumptions.
|
|
||||||
|
|
||||||
Finish when each repository-specific claim has support or an explicit assumption marker.
|
|
||||||
|
|
||||||
3. Choose the document shape.
|
|
||||||
Infer the document type and title from context.
|
|
||||||
Load [DOCUMENT-FORMAT.md](DOCUMENT-FORMAT.md) when the operator requests no specific format.
|
|
||||||
Adapt the structure only when the requested document type needs different sections.
|
|
||||||
Preserve useful sections for decisions, testing, scope, and notes.
|
|
||||||
|
|
||||||
Finish when the draft has a title and section plan that fit the requested document.
|
|
||||||
|
|
||||||
4. Write the draft.
|
|
||||||
Capture known context accurately.
|
|
||||||
Mark assumptions and gaps explicitly.
|
|
||||||
Include decisions that the conversation settled.
|
|
||||||
Include open questions only as gaps, not as an interview.
|
|
||||||
Keep the document focused on the operator's problem and intended use.
|
|
||||||
|
|
||||||
Finish when the draft contains the relevant facts, decisions, assumptions, gaps, and scope.
|
|
||||||
|
|
||||||
5. Persist the draft.
|
|
||||||
Use `docs/00 INBOX/ai` as the default destination.
|
|
||||||
Use the operator's requested path when one exists.
|
|
||||||
Derive a kebab-case slug from the inferred title.
|
|
||||||
Create the destination directory when it does not exist.
|
|
||||||
If the target file exists, summarize the expected change.
|
|
||||||
Confirm before overwriting an existing file.
|
|
||||||
Do not print the draft in chat instead of writing it.
|
|
||||||
|
|
||||||
Finish when the draft is written or overwrite confirmation is pending.
|
|
||||||
|
|
||||||
6. Finish with the result.
|
|
||||||
Report the written path.
|
|
||||||
Do not include the draft contents in the response.
|
|
||||||
Do not continue into implementation without an explicit instruction.
|
|
||||||
|
|
||||||
Finish when the operator can find the written draft.
|
|
||||||
Reference in New Issue
Block a user