alignfirst 0.4.0 → 0.6.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +54 -2
  2. package/dist/cli.js +2 -1
  3. package/dist/commands/config.js +15 -4
  4. package/dist/commands/context.js +23 -3
  5. package/dist/commands/docmap.js +4 -1
  6. package/dist/commands/doctor.js +27 -4
  7. package/dist/commands/guide.js +6 -6
  8. package/dist/commands/plans.js +18 -15
  9. package/dist/commands/sync.js +5 -5
  10. package/dist/commands/ticket.js +22 -19
  11. package/dist/context.d.ts +2 -0
  12. package/dist/conventions.js +11 -9
  13. package/dist/format.d.ts +2 -0
  14. package/dist/format.js +8 -0
  15. package/dist/plans/archive.d.ts +8 -2
  16. package/dist/plans/archive.js +41 -17
  17. package/dist/plans/catchup.js +12 -10
  18. package/dist/plans/layout.d.ts +4 -7
  19. package/dist/plans/layout.js +10 -14
  20. package/dist/plans/link.d.ts +1 -1
  21. package/dist/plans/link.js +8 -6
  22. package/dist/plans/mode.d.ts +3 -1
  23. package/dist/plans/mode.js +11 -7
  24. package/dist/plans/ticket.d.ts +7 -4
  25. package/dist/plans/ticket.js +30 -20
  26. package/dist/project-config.d.ts +4 -3
  27. package/dist/project-config.js +7 -9
  28. package/dist/project-layout.d.ts +30 -0
  29. package/dist/project-layout.js +174 -0
  30. package/package.json +3 -3
  31. package/templates/guide/code-review/correctness-reviewer.md +1 -0
  32. package/templates/guide/code-review/quality-reviewer.md +1 -0
  33. package/templates/guide/code-review/reviewer-common.md +2 -0
  34. package/templates/guide/core.md +1 -1
  35. package/templates/guide/protocols/aad.md +24 -17
  36. package/templates/guide/protocols/description.md +8 -8
  37. package/templates/guide/protocols/merge.md +5 -5
  38. package/templates/guide/protocols/plan.md +59 -70
  39. package/templates/guide/protocols/spec.md +44 -37
@@ -2,92 +2,85 @@
2
2
 
3
3
  ## Prerequisites
4
4
 
5
- ### Determine TICKET_DIR and the Spec File
6
-
7
5
  You need:
8
6
 
9
7
  - the TICKET_DIR and ticket directory context — run `{{TICKET_CMD}}` once (`{{CMD}} ticket --side` for a side ticket, when there is no ticket)
10
8
  - a **spec file** in the TICKET_DIR
11
9
 
12
- Identify TICKET_DIR and the spec file before starting the protocol. If either is missing, STOP AND ASK THE USER.
10
+ Without a spec file, stop and ask the user.
13
11
 
14
12
  ## Phases
15
13
 
16
- Before starting, **read the spec file** and understand it entirely.
14
+ Read the spec file entirely before starting. Then plan in six phases, in this order:
17
15
 
18
- In order to generate implementation plans, you MUST follow this process:
16
+ 1. **Investigation**: explore the codebase and check the spec against it.
17
+ 2. **Analysis**: decide the plan structure, single or multiple, and collect the documentation and skills.
18
+ 3. **Plan Design**: design each plan.
19
+ 4. **Main Plan Design**: with multiple plans, design the main plan that coordinates them.
20
+ 5. **Writing**: write the plan files.
21
+ 6. **Review**: reread the plans critically and improve them.
19
22
 
20
- 1. **Investigation**: Explore the codebase, understand the current implementation, and identify the problem
21
- 2. **Analysis**: Determine the plan structure (single or multiple plans) and identify relevant documentation and skills
22
- 3. **Plan Design**: Design plan(s) based on the analysis - If you discover issues or missing design decisions, STOP AND ASK THE USER
23
- 4. **Main Plan Design**: If multiple plans, design a main plan to coordinate them
24
- 5. **Writing**: Write the plan file(s)
25
- 6. **Review**: Critically review and improve the plan(s)
23
+ One rule holds across all phases: an important design decision the spec leaves open, or a spec that is wrong or contradicts the code, stops the protocol. Ask the user. A plan is executed by an agent that trusts it, often while the user is away.
26
24
 
27
25
  ## Phase 1. Investigation
28
26
 
29
- Check your context for available **documentation** and **skills**. Read every document and skill relevant to any aspect of the task — this is not optional. For each skill, also **read its relevant references**.
27
+ Your context lists the available **documentation** and **skills**. Read every document and skill that applies to any aspect of the task, and the relevant references of each skill. A familiar-looking task tempts you to skip this reading; the project conventions live in these files.
30
28
 
31
- Investigate the codebase yourself, find the relevant source code, think carefully, take the time to understand how it currently works and what has to be done.
29
+ Find the relevant source code. Take the time to understand how it works today and what has to change.
32
30
 
33
- Use the SPEC text as a starting point, but do not trust it blindly. Verify the current implementation and ensure the spec is still accurate. If you discover that an important design choice still needs to be made, or if the spec has issues, STOP AND ASK THE USER.
31
+ The spec is the starting point, and it was written against an earlier state of the code. Verify each statement against the current implementation.
34
32
 
35
- For each operation in the spec, search for existing functions that do a similar job.
33
+ For each operation in the spec, search for an existing function that does a similar job.
36
34
 
37
35
  ## Phase 2. Analysis
38
36
 
39
- Based on your investigation, determine the plan structure:
40
-
41
37
  ### 2.1 Assess Work Scopes
42
38
 
43
- Evaluate if the work should be split into multiple specialized plans or handled as a single plan:
39
+ Prefer a single plan when the work fits one session, especially when it stays within one area.
44
40
 
45
- - **Single plan**: Preferred when work is small enough to be manageable, especially if it is cohesive within one area
46
- - **Multiple specialized plans with a main plan**: Split the work when it is complex, based on:
47
- - **Distinct logical units**: When large enough, separate features or modules within the same stack
48
- - **Stack boundaries**: Different technologies or specialization areas (if custom agents are defined, their descriptions can help identify these boundaries)
49
- - Each specialized plan should produce a **coherent deliverable**
41
+ Split complex work into specialized plans, coordinated by a main plan. Split along:
50
42
 
51
- ### 2.2 Identify Relevant Documentation and Skills
43
+ - **Distinct logical units**: separate features or modules, each large enough to stand alone
44
+ - **Stack boundaries**: different technologies or specialization areas. The descriptions of custom agents, when some are defined, help find these boundaries.
45
+
46
+ Each specialized plan produces a coherent deliverable.
52
47
 
53
- Identify which **documentation** and **skills** are relevant for the work. Omit if none apply.
48
+ ### 2.2 Identify Relevant Documentation and Skills
54
49
 
55
- - List the documentation and skills that the implementing agent should read and follow. Always exclude `alignfirst` from skills.
56
- - For complex skills with reference files, identify specific files that should be loaded
50
+ List the documentation and skills the implementing agent must read and follow. Exclude `alignfirst` from the skills. For a skill with reference files, name the files to load. Omit the list when nothing applies.
57
51
 
58
52
  ## Phase 3. Plan Design
59
53
 
60
- Design an implementation plan based on the SPEC. Include all useful information from the spec. If the spec is already detailed enough, you can extract and reuse parts of it. Add implementation details, file paths, and a breakdown into steps that weren't in the spec.
54
+ Design each plan from the spec. Reuse the parts of the spec that are detailed enough, and add what the spec lacks: implementation details, file paths, a breakdown into steps.
61
55
 
62
56
  ### 3.1 Plan Content Guidelines
63
57
 
64
- Follow these guidelines for all plans (single or specialized):
58
+ These guidelines apply to every plan, single or specialized.
59
+
60
+ The plan is a **self-explanatory prompt** for the coding agent. That agent starts from zero: tell it what you discovered.
65
61
 
66
- - The plan must be a **self-explanatory prompt** for the coding agent, so help it by explaining what you discovered that is relevant.
67
- - Give some context: explain how it works currently, and how it will work after the task is done.
68
- - In a "Prerequisites" section, list **relevant documentation and skills** to use. Do not repeat their content.
69
- - Mention a way to find **important source files**: by giving file paths, or by providing a function name to search for, for example. If needed, line numbers can be mentioned in the plan.
70
- - Include a list of **numbered steps**.
71
- - **Never plan backward compatibility** unless explicitly requested. Prefer clean code. Unused code must be removed.
72
- - About **tests**: First investigate the codebase to see if there are tests already in place for the kind of tests you're considering. Do not mention writing tests unless you are sure they will be well-integrated into the project.
73
- - Do not include sections like "Benefits", "Code Style Compliance", "Rationale" or anything that adds no actionable information. Focus on the problem and the solution.
74
- - List **existing functions to reuse or refactor**. Plan thin wrappers, not re-implementations. Each operation should have one proper place.
62
+ - Give context: how it works today, and how it will work after the task.
63
+ - In a "Prerequisites" section, list the relevant documentation and skills. Do not repeat their content.
64
+ - Give a way to find the **important source files**: file paths, or a function name to search for. Line numbers are fine in a plan.
65
+ - Give **numbered steps**.
66
+ - List the **existing functions to reuse or refactor**. Plan thin wrappers, not re-implementations: each operation has one proper place.
67
+ - Plan a clean break. Unused code is removed. Backward compatibility appears only when the user asked for it.
68
+ - **Tests**: look first for existing tests of the kind you consider. Plan tests only when they fit the project's test setup.
69
+ - Leave out sections that add no actionable information: "Benefits", "Code Style Compliance", "Rationale", and the like.
75
70
 
76
71
  ### 3.2 Single Plan Format
77
72
 
78
73
  _Use this when writing a single plan. Skip this section for multiple plans._
79
74
 
80
- A single plan has no header with assignment, documentation, or skills — they are listed in the Prerequisites section within the plan body.
75
+ A single plan has no header with assignment, documentation, or skills. They are listed in the Prerequisites section within the plan body.
81
76
 
82
77
  ### 3.3 Specialized Plan Format
83
78
 
84
79
  _Use this when writing multiple plans. Skip this section for a single plan._
85
80
 
86
- For specialized plans, add these additional requirements:
81
+ **At the top of each specialized plan**, add a header. Include only the fields that have content. One agent can be assigned to several plans, as separate instances.
87
82
 
88
- **At the top of each specialized plan**, add a header. Only include fields that have content — omit any field with nothing to list. One agent can be assigned to multiple plans (separate instances).
89
-
90
- _Note: "Custom agent" refers to configured agent profiles in your environment (e.g., custom agents in Copilot, custom subagents in Claude Code). If your environment doesn't support this, ignore the "Assigned to" field._
83
+ _Note: "Custom agent" refers to configured agent profiles in your environment (custom agents in Copilot, custom subagents in Claude Code). Ignore the "Assigned to" field when your environment has none._
91
84
 
92
85
  Example:
93
86
 
@@ -101,23 +94,23 @@ Example:
101
94
  - **Skills**: `skill-a`, `skill-b`
102
95
  ```
103
96
 
104
- **In the context section**, explain what you discovered **relevant to this plan's scope** and how it works currently and will work after the task is done **within its scope**.
97
+ **In the context section**, explain what you discovered **within this plan's scope**: how it works today and how it will work after the task.
105
98
 
106
- **In the numbered steps**, include only steps for this plan's work. Each plan should be self-contained.
99
+ **In the numbered steps**, include only this plan's work. Each plan is self-contained.
107
100
 
108
- **Coordination notes**: If this plan depends on another plan, mention it explicitly.
101
+ **Coordination notes**: when this plan depends on another plan, say so explicitly.
109
102
 
110
103
  ### 3.4 Add a Final Step to Plans
111
104
 
112
- _For all plans (single or specialized)_, add a final step named "Write a Handover Document" with this content:
105
+ For every plan, single or specialized, add a final step named "Write a Handover Document" with this content:
113
106
 
114
107
  ```markdown
115
- Write a **handover document**. This document must contain the list of all files you updated. Also, summarize the changes made in a very concise way. Add only relevant information that will help your teammates understand what's new. Do not mention obvious information. It's not a course or a tutorial, if there is nothing to explain, then do not explain. Create its path by replacing the final `.md` in `{PLAN_FILE_PATH}` with `.summary.md`, then write the handover there. Ignore lint errors (formatting issues) in this file. At the end, give the path of this handover file to the user.
108
+ Write a **handover document** for your teammates. List every file you updated, then summarize the changes very concisely. Keep only what helps a teammate understand what is new; leave out the obvious. When there is nothing to explain, explain nothing. Create its path by replacing the final `.md` in `{PLAN_FILE_PATH}` with `.summary.md`, then write the handover there. Ignore lint errors (formatting issues) in this file. At the end, give the path of this handover file to the user.
116
109
  ```
117
110
 
118
111
  Note:
119
112
 
120
- - This is a regular step, it should be numbered like the other steps. For example, if your plan has 5 steps, this becomes step 6.
113
+ - This is a regular step, numbered like the others. A plan with 5 steps gets this one as step 6.
121
114
  - Replace "{PLAN_FILE_PATH}" with the complete plan file path, such as `.plans/123/A2-plan-backend.md`. Its handover path is `.plans/123/A2-plan-backend.summary.md`.
122
115
 
123
116
  ### 3.5 Common Footer for All Plans
@@ -129,21 +122,21 @@ Add the following content to the very end of each plan:
129
122
 
130
123
  Do not trust this plan blindly. Be sure you understand the codebase and the plan by yourself before applying it.
131
124
 
132
- **IMPORTANT**: Do NOT use external search tools (Context7, web search, documentation fetching) during implementation unless explicitly allowed in this plan. All context should be provided in this plan or discoverable in the codebase.
125
+ Do not use external search tools (Context7, web search, documentation fetching) during implementation unless this plan explicitly allows it. Everything needed is in this plan or discoverable in the codebase.
133
126
  ```
134
127
 
135
128
  ## Phase 4. Main Plan Design
136
129
 
137
- **Create a main plan only when multiple plans are created. Skip this section entirely if not applicable.**
130
+ **Create a main plan only when there are several plans. Skip this section otherwise.**
138
131
 
139
132
  ### 4.1 Main Plan Guidelines
140
133
 
141
- The main plan coordinates the execution of all specialized plans. It should contain:
134
+ The main plan coordinates the execution of the specialized plans. It contains:
142
135
 
143
- 1. **Reference to the specification**: Mention the spec file but do not repeat its content.
144
- 2. **Execution strategy** section: Specify if plans can be executed in parallel or must be sequential, with dependencies clearly noted.
145
- 3. **Plan assignments** section: For each specialized plan, include only applicable fields — assignment, documentation, skills, and a brief description
146
- 4. **Main Handover Document** section
136
+ 1. **Reference to the specification**: mention the spec file; do not repeat its content.
137
+ 2. **Execution strategy** section: parallel or sequential, with the dependencies stated.
138
+ 3. **Plan assignments** section: for each specialized plan, the applicable fields only: assignment, documentation, skills, and a brief description.
139
+ 4. **Main Handover Document** section.
147
140
 
148
141
  Format example:
149
142
 
@@ -177,7 +170,7 @@ Execute these specialized plans:
177
170
  - `docs/topic-b/doc-3.md`
178
171
  - **Description**: [Brief description]
179
172
 
180
- _**Important:** In the prompt you give to the subagent tool, do not reproduce the specialized plan. Instead, provide the file path._
173
+ _In the prompt given to the subagent tool, provide the file path of the specialized plan. Do not reproduce its content._
181
174
 
182
175
  ### Coordination Notes
183
176
 
@@ -185,12 +178,10 @@ _**Important:** In the prompt you give to the subagent tool, do not reproduce th
185
178
 
186
179
  ## Main Handover Document
187
180
 
188
- Write a **main plan handover document**. This document should:
181
+ Write a **main plan handover document**. This document:
189
182
 
190
- 1. Reference each specialized plan's handover file
191
- 2. For each referenced handover:
192
- - State "Completed" if the plan was executed successfully
193
- - Detail any issues encountered during execution
183
+ 1. References each specialized plan's handover file
184
+ 2. For each referenced handover, states "Completed" when the plan was executed successfully, and details any issue encountered otherwise
194
185
 
195
186
  Keep this handover very short. Do not combine or repeat the content of individual handovers. Create its path by replacing the final `.md` in `{PLAN_FILE_PATH}` with `.summary.md`, then write the handover there. Ignore lint errors (formatting issues) in this file.
196
187
 
@@ -198,7 +189,7 @@ Keep this handover very short. Do not combine or repeat the content of individua
198
189
 
199
190
  Do not trust this plan blindly. Be sure you understand the codebase and all specialized plans before coordinating their execution.
200
191
 
201
- **IMPORTANT**: Do NOT use external search tools (Context7, web search, documentation fetching) during implementation unless explicitly allowed in these plans. All context should be provided in these plans or discoverable in the codebase.
192
+ Do not use external search tools (Context7, web search, documentation fetching) during implementation unless these plans explicitly allow it. Everything needed is in these plans or discoverable in the codebase.
202
193
  ````
203
194
 
204
195
  Note:
@@ -224,21 +215,19 @@ Continue the current cycle. Request the file names with `{{TICKET_CMD}} --next`,
224
215
  - Specialized plans: `{TICKET_DIR}{CYCLE_LETTER}{FILE_NUMBER}-plan-{DESCRIPTOR}.md`, e.g. `.plans/123/A3-plan-api.md`, `.plans/123/A4-plan-ui.md`. The descriptor is lowercase and hyphenated and names the work scope or stack area.
225
216
  - Handovers: replace the final `.md` with `.summary.md`, e.g. `.plans/123/A3-plan-api.summary.md`. The main plan handover is written after all specialized plans complete.
226
217
 
227
- _Important Note: There will be lint errors in the markdown files you write. Ignore them. NEVER FIX LINT ERRORS (FORMATTING ISSUES) IN THE PLANS._
218
+ Ignore Markdown lint errors in the plan files. Fixing them wastes the session.
228
219
 
229
220
  ## Phase 6. Review
230
221
 
231
- When you think the plan(s) are complete, read them again with a critical eye and edit them to improve them.
232
-
233
- Repeat the review until you think all plans are solid.
222
+ When you think the plans are complete, read them again with a critical eye and edit them to improve them. Repeat until every plan is solid.
234
223
 
235
224
  **Additional review for multiple plans**:
236
225
 
237
226
  - Each specialized plan is self-contained
238
227
  - Each specialized plan header includes only applicable fields (assignment, documentation, skills)
239
- - The main plan correctly references all specialized plans with their applicable fields
240
- - Dependencies between plans are clearly documented
228
+ - The main plan references all specialized plans with their applicable fields
229
+ - Dependencies between plans are stated
241
230
 
242
231
  ---
243
232
 
244
- At the end, give the path of the plan file to the user (for a single plan: the plan file; for multiple plans: the main plan file)
233
+ At the end, give the path of the plan file to the user (for a single plan: the plan file; for multiple plans: the main plan file).
@@ -6,68 +6,75 @@ Run `{{TICKET_CMD}}` once to identify TICKET_DIR and load the ticket directory c
6
6
 
7
7
  ## Phases
8
8
 
9
- When the user asks you for a SPEC (technical specification), you MUST follow this process:
9
+ A specification is produced in three phases, in this order:
10
10
 
11
- 1. **Investigation**: Research the codebase to understand the current implementation and identify the problem
12
- 2. **Discussion**: Collaborate with the user to explore the problem space and potential solutions BEFORE writing the specification file
13
- 3. **Specification**: Only after user approval, write the final specification file
11
+ 1. **Investigation**: understand the current implementation and the problem.
12
+ 2. **Discussion**: align with the user on the problem and the solution.
13
+ 3. **Specification**: write the spec file, once the user has approved.
14
14
 
15
- The discussion phase is MANDATORY. Remember that you are a newcomer to this project while the user has extensive experience with the codebase and will be happy to help guide you.
15
+ The usual failure is to write the spec right after investigating. The discussion comes first, every time.
16
16
 
17
17
  ## Phase 1. Investigation
18
18
 
19
- Check your context for available **documentation** and **skills**. Read every document and skill relevant to any aspect of the task — this is not optional. For each skill, also **read its relevant references**.
19
+ Your context lists the available **documentation** and **skills**. Read every document and skill that applies to any aspect of the task, and the relevant references of each skill. A familiar-looking task tempts you to skip this reading; the project conventions live in these files.
20
20
 
21
- Investigate the codebase yourself, find the relevant source code, think carefully, take the time to understand how it currently works and what has to be done. If the Context7 MCP is available, feel free to use it.
21
+ Find the relevant source code. Take the time to understand how it works today and what has to change. Documentation lookup tools are welcome in this phase.
22
22
 
23
- Always seek a clean break solution by default. Never consider backward compatibility unless explicitly requested.
23
+ Seek a clean break solution by default. Consider backward compatibility only when the user asks for it.
24
24
 
25
25
  ## Phase 2. Discussion
26
26
 
27
- Engage in a thorough collaborative discussion covering:
27
+ Nothing is written in TICKET_DIR before the user agrees.
28
28
 
29
- - **Problem exploration**: Present your understanding of the problem and ask clarifying questions
30
- - **Current implementation analysis**: Share what you discovered and ask for confirmation or corrections
31
- - **Multiple solution approaches**: Present several viable alternatives when they exist, explaining trade-offs
32
- - **Sub-subject identification**: Break down the problem into all relevant sub-components and ensure each is addressed
33
- - **Design decisions**: Ask for user input on key architectural choices
34
- - **Edge cases and implications**: Explore potential issues and broader system impacts
29
+ The user is a developer who carries the global vision of the project and decides the choices that matter. You carry the details of the code you just read. The discussion keeps the user aware of what you found and hands them every decision worth taking.
35
30
 
36
- You should ask questions freely to ensure you fully understand:
31
+ Manage the reader's attention. Open with the task as you understand it and the approach you propose, in two or three sentences. Then write one block per point that deserves a decision. Write for a reader who has not opened the code today: a function, module or mechanism gets a few words of definition the first time you name it.
37
32
 
38
- - The problem context and requirements
39
- - Existing patterns and conventions in the codebase
40
- - User preferences for implementation approaches
41
- - Any constraints or considerations you might have missed
33
+ A block is a question and a recommendation:
42
34
 
43
- Do not use your question tool. Always ask in plain text. Your questions will be the opportunity for a real discussion.
35
+ ```
36
+ ❓ **Q1 - <title>**: <the problem in plain words, what the code does today in the words needed to decide, the options with their consequence>
37
+
38
+ ➡️ <your recommendation>
39
+ ```
40
+
41
+ Look for edge cases and impacts on the rest of the system; each one that needs a decision gets its block.
42
+
43
+ A ❓ is open: the user's answer shapes what you build. When the only answers are go or veto, the block shrinks to a single ➡️ line stating your choice. The more obvious the choice, the shorter the line. Leave out the investigation narrative and the list of files you read.
44
+
45
+ Settle on your own what the code can answer. Ask the user what needs their judgement: product behavior, scope, priorities, constraints the code does not show. Every ❓ carries a ➡️, so that "fine with all recommendations" is a valid answer. Ask in rounds: a question whose answer depends on another question still open waits for the next round.
46
+
47
+ When several approaches are viable, present them with their trade-offs. Check that every sub-subject of the task has its block; a sub-subject skipped here is missing from the spec.
48
+
49
+ Do not use your question tool. Ask in plain text: your questions open a real discussion, a multiple-choice widget closes it.
44
50
 
45
51
  ## Phase 3. Specification
46
52
 
47
53
  After the user approves your proposal, run `{{TICKET_CMD}} --next spec.md --new-cycle` to start a new cycle. Append FILE_NAME to TICKET_DIR, then immediately write the specification at that path. Do not overwrite an existing file.
48
54
 
49
- - After the title, include a suggested commit message {{COMMIT_RULE}}. The shorter the better. Then list the required documentation and skills. List each doc file individually — never a folder. Always exclude `alignfirst` from skills. Omit any field with nothing to list. Example:
55
+ Start with the title, a suggested commit message {{COMMIT_RULE}}, then the required documentation and skills. The shorter the commit message, the better. List each doc file individually, never a folder. Exclude `alignfirst` from the skills. Omit a field with nothing to list.
56
+
57
+ ```text
58
+ # [{TICKET_ID}] Short Title
50
59
 
51
- ```text
52
- # [{TICKET_ID}] Short Title
60
+ Suggested commit message: `<commit message>`
53
61
 
54
- Suggested commit message: `<commit message>`
62
+ Required Documentation:
55
63
 
56
- Required Documentation:
64
+ - `docs/topic-a/doc-1.md`
65
+ - `docs/topic-b/doc-2.md`
57
66
 
58
- - `docs/topic-a/doc-1.md`
59
- - `docs/topic-b/doc-2.md`
67
+ Required skills: `skill-1`, `skill-2`
68
+ ```
60
69
 
61
- Required skills: `skill-1`, `skill-2`
62
- ```
70
+ Content rules:
63
71
 
64
- - **Do not specify backward compatibility** unless explicitly requested. Prefer clean break by default. Unused code must be removed.
65
- - A specification is not always immediately executed, and you have to assume that the code can change before it is executed. You can mention a function by name, but NEVER mention specific line numbers as they will become obsolete.
66
- - Spell out every change to code contracts: database schema and migrations, API shapes, critical type definitions.
67
- - Do not include other detailed code. Refer to source files by path or function name.
68
- - Cover the full scope of the task. Never drop parts to shrink the spec — splitting work across plans is handled later by the *plan* protocol. If you anticipate a section should land in a separate plan, flag it inline (e.g. "candidate for a specialized plan").
69
- - Do not include sections like "Benefits", "Code Style Compliance" or anything that adds no new information. Focus on the problem and the solution.
72
+ - The spec covers the full scope of the task. Dropping a part to shrink the spec is a frequent failure; splitting the work is the job of the *plan* protocol. Flag inline a section that should land in its own plan ("candidate for a specialized plan").
73
+ - Spell out every change to a code contract: database schema and migrations, API shapes, critical type definitions. Leave out other code; refer to source files by path or function name.
74
+ - The code may change before the spec is executed. Name functions, never line numbers.
75
+ - Specify a clean break. Unused code is removed. Backward compatibility appears only when the user asked for it.
76
+ - Leave out sections that add no information: "Benefits", "Code Style Compliance", and the like. Problem and solution only.
70
77
 
71
- _Important Note:_ There will be lint errors in the markdown file you write. Ignore them. NEVER FIX LINT ERRORS (FORMATTING ISSUES) IN THE SPEC.
78
+ Ignore Markdown lint errors in the spec file. Fixing them wastes the session.
72
79
 
73
80
  At the end, give the path of the spec file to the user.