@fro.bot/systematic 2.25.0 → 2.27.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.
- package/agents/design/design-implementation-reviewer.md +1 -0
- package/agents/design/design-iterator.md +1 -0
- package/agents/design/figma-design-sync.md +1 -0
- package/agents/docs/ankane-readme-writer.md +1 -0
- package/agents/document-review/adversarial-document-reviewer.md +1 -0
- package/agents/document-review/coherence-reviewer.md +1 -0
- package/agents/document-review/design-lens-reviewer.md +1 -0
- package/agents/document-review/feasibility-reviewer.md +1 -0
- package/agents/document-review/product-lens-reviewer.md +1 -0
- package/agents/document-review/scope-guardian-reviewer.md +1 -0
- package/agents/document-review/security-lens-reviewer.md +1 -0
- package/agents/research/best-practices-researcher.md +1 -0
- package/agents/research/framework-docs-researcher.md +1 -0
- package/agents/research/git-history-analyzer.md +1 -0
- package/agents/research/issue-intelligence-analyst.md +1 -0
- package/agents/research/learnings-researcher.md +1 -0
- package/agents/research/repo-research-analyst.md +1 -0
- package/agents/research/slack-researcher.md +1 -0
- package/agents/review/adversarial-reviewer.md +1 -0
- package/agents/review/agent-native-reviewer.md +1 -0
- package/agents/review/architecture-strategist.md +1 -0
- package/agents/review/cli-agent-readiness-reviewer.md +1 -0
- package/agents/review/cli-readiness-reviewer.md +1 -0
- package/agents/review/code-simplicity-reviewer.md +1 -0
- package/agents/review/data-integrity-guardian.md +1 -0
- package/agents/review/data-migration-expert.md +1 -0
- package/agents/review/deployment-verification-agent.md +1 -0
- package/agents/review/pattern-recognition-specialist.md +1 -0
- package/agents/review/performance-oracle.md +1 -0
- package/agents/review/previous-comments-reviewer.md +1 -0
- package/agents/review/project-standards-reviewer.md +1 -0
- package/agents/review/schema-drift-detector.md +1 -0
- package/agents/review/security-sentinel.md +1 -0
- package/agents/review/testing-reviewer.md +1 -0
- package/agents/workflow/pr-comment-resolver.md +1 -0
- package/agents/workflow/spec-flow-analyzer.md +1 -0
- package/package.json +1 -1
- package/skills/ce-brainstorm/SKILL.md +18 -1
- package/skills/ce-brainstorm/references/brainstorm-sections.md +50 -0
- package/skills/ce-brainstorm/references/markdown-rendering.md +202 -0
- package/skills/ce-brainstorm/references/requirements-capture.md +20 -0
- package/skills/ce-brainstorm/references/synthesis-summary.md +273 -0
- package/skills/ce-brainstorm/references/universal-brainstorming.md +1 -1
- package/skills/ce-brainstorm/references/visual-communication.md +29 -0
- package/skills/ce-plan/SKILL.md +120 -0
- package/skills/ce-plan/references/markdown-rendering.md +203 -0
- package/skills/ce-plan/references/plan-handoff.md +5 -5
- package/skills/ce-plan/references/plan-sections.md +117 -0
- package/skills/ce-plan/references/synthesis-summary.md +395 -0
- package/skills/ce-plan/references/universal-planning.md +3 -3
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# Markdown Rendering
|
|
2
|
+
|
|
3
|
+
This is a format-rendering reference — it describes how to render any
|
|
4
|
+
artifact in markdown, independent of which skill is producing it.
|
|
5
|
+
|
|
6
|
+
It is paired with a section contract (`references/plan-sections.md`)
|
|
7
|
+
that describes *what* the artifact contains. This reference describes
|
|
8
|
+
*how* markdown specifically presents it. The same content rendered by
|
|
9
|
+
different skills shares the same markdown principles.
|
|
10
|
+
|
|
11
|
+
## Hard invariants
|
|
12
|
+
|
|
13
|
+
These hold regardless of which skill produced the artifact.
|
|
14
|
+
|
|
15
|
+
- **YAML frontmatter at the top of the file.** Standard `---` delimited block
|
|
16
|
+
containing the artifact's stable metadata (title, status, date, type, etc.
|
|
17
|
+
— exact fields are per-skill, defined in the section contract). Editable
|
|
18
|
+
in place; tools and agents that do status flips (`active → completed`)
|
|
19
|
+
update the YAML directly.
|
|
20
|
+
- **ASCII identifiers in anchors.** Markdown headings auto-generate anchors
|
|
21
|
+
from the heading text. Keep headings ASCII so anchors are predictable
|
|
22
|
+
(`#implementation-units`, not `#implementación-units`).
|
|
23
|
+
- **Repo-relative paths for file references.** Always. Never absolute paths
|
|
24
|
+
— they break portability across machines, worktrees, teammates.
|
|
25
|
+
- **No HTML mixed in.** Keep the markdown pure. No `<div>`, no `<details>`,
|
|
26
|
+
no inline `<style>`. Markdown stays markdown.
|
|
27
|
+
|
|
28
|
+
## Format principles
|
|
29
|
+
|
|
30
|
+
These shape what "good" markdown looks like; the agent applies them per
|
|
31
|
+
artifact based on content shape.
|
|
32
|
+
|
|
33
|
+
### ID prefix format
|
|
34
|
+
|
|
35
|
+
Stable IDs (R, U, A, F, AE, KTD) appear as plain prefixes at the start of
|
|
36
|
+
the bullet or heading — do NOT bold the prefix. The prefix is visually
|
|
37
|
+
distinctive on its own; bolding it inflates visual noise.
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
- R1. The plan returns paginated sessions. ← right
|
|
41
|
+
- **R1.** The plan returns paginated sessions. ← wrong (bolded prefix)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Same applies to unit headings: `### U1. Cloak detection in preflight contract`.
|
|
45
|
+
|
|
46
|
+
### Content shape: prose vs bullets vs tables
|
|
47
|
+
|
|
48
|
+
The same content can be rendered three ways; the agent picks per content
|
|
49
|
+
shape, not by template default.
|
|
50
|
+
|
|
51
|
+
- **Prose** when the content has narrative flow (motivation, decision
|
|
52
|
+
rationale, problem framing). Bullets fragment narrative into
|
|
53
|
+
disconnected pieces.
|
|
54
|
+
- **Bullets** when items share a parallel shape but each carries enough
|
|
55
|
+
prose to not fit a table cell.
|
|
56
|
+
- **Tables** when 5+ items share uniform structure (`ID + body`,
|
|
57
|
+
`name + value`, `decision + rationale`, `risk + mitigation`). Tables
|
|
58
|
+
scan faster at that scale and unlock additional columns (status,
|
|
59
|
+
traceability, severity) that bullets can't accommodate cleanly.
|
|
60
|
+
|
|
61
|
+
The test: which shape would a reader scan fastest for this content? If
|
|
62
|
+
items have parallel structure and 5+ instances, table. If items are 3-5
|
|
63
|
+
and each has a few lines of prose, bullets. If the content is a single
|
|
64
|
+
narrative thought, prose.
|
|
65
|
+
|
|
66
|
+
### Bold leader labels within bullets
|
|
67
|
+
|
|
68
|
+
When a bullet has substructure that benefits from named fields (Key Flows
|
|
69
|
+
with Trigger / Actors / Steps / Outcome, Acceptance Examples with Covers
|
|
70
|
+
/ Given / When / Then), use bold leader labels at the start of nested
|
|
71
|
+
bullets — not deeper heading levels.
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
- F1. Anonymous capture
|
|
75
|
+
- **Trigger:** Agent enters Step 2a with no session.
|
|
76
|
+
- **Actors:** A1, A2
|
|
77
|
+
- **Steps:** Preflight detects cloak; agent launches; capture proceeds.
|
|
78
|
+
- **Covered by:** R1, R2, R5
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
This gives the bullet structure without needing H4/H5 headings that would
|
|
82
|
+
clutter the doc and break TOC generation.
|
|
83
|
+
|
|
84
|
+
### Section separators
|
|
85
|
+
|
|
86
|
+
For substantial artifacts, use horizontal rules (`---`) between top-level
|
|
87
|
+
H2 sections. Omit for short docs where separators would dominate.
|
|
88
|
+
|
|
89
|
+
### Tables for genuinely comparative info only
|
|
90
|
+
|
|
91
|
+
Use tables for the uniform-shape case in "Content shape" above. Don't use
|
|
92
|
+
tables to render content lists that are really bullets — markdown tables
|
|
93
|
+
are noisier in raw form and worse for diffs.
|
|
94
|
+
|
|
95
|
+
## Section anatomy
|
|
96
|
+
|
|
97
|
+
How section types commonly render in markdown. These are patterns, not
|
|
98
|
+
contracts — the agent picks the shape that fits the content.
|
|
99
|
+
|
|
100
|
+
- **Summary / Problem Frame** — prose paragraphs.
|
|
101
|
+
- **Requirements** — bullets with `R<N>.` prefix. When requirements span
|
|
102
|
+
more than one concern, grouping under bold inline headers is the default
|
|
103
|
+
shape, not optional polish (group by capability, not by discussion order);
|
|
104
|
+
render a flat list only when every requirement is about the same thing.
|
|
105
|
+
When requirements have status, traceability, or severity that warrant
|
|
106
|
+
additional columns, escalate to a table.
|
|
107
|
+
- **Implementation Units** — H3 heading per unit with `U<N>.` prefix.
|
|
108
|
+
Fields (Goal, Files, Patterns, Test Scenarios, Verification) render as
|
|
109
|
+
bullets with bold leader labels, or as sub-headings if the field has
|
|
110
|
+
multi-paragraph content.
|
|
111
|
+
- **Key Technical Decisions** — bullets with bold decision name + prose
|
|
112
|
+
rationale, or numbered KTD-N pattern when traceability matters.
|
|
113
|
+
- **Key Flows / Acceptance Examples** — bullets with bold leader labels
|
|
114
|
+
(Trigger / Actors / Steps / Outcome / Covers / Given-When-Then).
|
|
115
|
+
- **Scope Boundaries** — bullets, optionally split into "Deferred to
|
|
116
|
+
Separate Tasks" / "Outside this product's identity" sub-headings when
|
|
117
|
+
the positioning distinction matters.
|
|
118
|
+
|
|
119
|
+
The agent picks more elaborate or simpler shapes based on what each
|
|
120
|
+
specific artifact's content needs.
|
|
121
|
+
|
|
122
|
+
## Diagrams
|
|
123
|
+
|
|
124
|
+
When the section contract calls for a diagram (architecture, sequence,
|
|
125
|
+
flowchart, state machine, swim lane, data-flow), markdown renders it as
|
|
126
|
+
a fenced mermaid block:
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
` ``mermaid
|
|
130
|
+
flowchart TB
|
|
131
|
+
A[Start] --> B{Decision}
|
|
132
|
+
B -->|yes| C[Action]
|
|
133
|
+
B -->|no| D[Other action]
|
|
134
|
+
` ``
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
(`TB` direction default — keeps diagrams narrow in source view and in
|
|
138
|
+
narrow rendered viewports.)
|
|
139
|
+
|
|
140
|
+
For quantitative comparisons (bar charts, scatter plots) markdown has no
|
|
141
|
+
native equivalent — use a table with the data and let prose or caption
|
|
142
|
+
carry the interpretation.
|
|
143
|
+
|
|
144
|
+
## Inline code and code blocks
|
|
145
|
+
|
|
146
|
+
- **Inline code** for identifiers (variable names, function names,
|
|
147
|
+
flag names, file paths, IDs that aren't section anchors).
|
|
148
|
+
- **Fenced code blocks** with language tag for code, shell commands,
|
|
149
|
+
API request/response samples. Always specify the language for syntax
|
|
150
|
+
highlighting and accessibility.
|
|
151
|
+
|
|
152
|
+
```markdown
|
|
153
|
+
The flag `--cdp-url` accepts a URL.
|
|
154
|
+
|
|
155
|
+
` ``bash
|
|
156
|
+
browser-use --cdp-url http://localhost:9222
|
|
157
|
+
` ``
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## No process exhaust
|
|
161
|
+
|
|
162
|
+
Engineering process metadata stays out of the artifact:
|
|
163
|
+
|
|
164
|
+
- No "captured at Phase X" notes
|
|
165
|
+
- No `## Next Steps` pointing to the next skill
|
|
166
|
+
- No italic provenance lines ("*Brainstorm completed 2026-05-13*")
|
|
167
|
+
- No engineering-flow shepherding ("Now read this file:", "Next, run that
|
|
168
|
+
command:")
|
|
169
|
+
|
|
170
|
+
This information belongs in commit messages, tool output, and agent
|
|
171
|
+
transcripts — not in the artifact a reader returns to weeks later.
|
|
172
|
+
|
|
173
|
+
## Frontmatter shape
|
|
174
|
+
|
|
175
|
+
Per-skill frontmatter fields are defined in the section contract
|
|
176
|
+
(`plan-sections.md` lists plan frontmatter). Common rules:
|
|
177
|
+
|
|
178
|
+
- YAML at the top of the file, delimited by `---` on its own line above
|
|
179
|
+
and below.
|
|
180
|
+
- Field names in lowercase snake_case (`status`, `created_at`, not
|
|
181
|
+
`Status`, `CreatedAt`).
|
|
182
|
+
- **Status lifecycle is per-contract.** When the section contract
|
|
183
|
+
defines a `status` field with a lifecycle (plans use
|
|
184
|
+
`active → completed`, flipped by `ce:work` at shipping time via direct
|
|
185
|
+
YAML edit), it is editable in place. When the section contract does
|
|
186
|
+
not define a status lifecycle (brainstorms, for example, have no
|
|
187
|
+
`active → completed` flip — they are upstream of plans and
|
|
188
|
+
referenced via the plan's `origin:`), do not introduce one.
|
|
189
|
+
- Stable across artifact revisions — never rename or repurpose a field.
|
|
190
|
+
|
|
191
|
+
## Post-write audit
|
|
192
|
+
|
|
193
|
+
Before declaring the markdown file written, scan it for these common
|
|
194
|
+
slips:
|
|
195
|
+
|
|
196
|
+
- All stable IDs are plain-prefix format, not bolded.
|
|
197
|
+
- No HTML elements mixed in.
|
|
198
|
+
- All file paths are repo-relative.
|
|
199
|
+
- Horizontal rule separators between H2s (for Standard / Deep artifacts).
|
|
200
|
+
- No process exhaust (Phase X notes, Next Steps pointers, provenance
|
|
201
|
+
lines).
|
|
202
|
+
- Tables only where 5+ uniform-shape items justify them.
|
|
203
|
+
- Frontmatter has all the per-skill required fields with reasonable values.
|
|
@@ -38,7 +38,7 @@ After document-review completes, present the options using the platform's blocki
|
|
|
38
38
|
**Question:** "Plan ready at `<absolute path to plan>`. What would you like to do next?"
|
|
39
39
|
|
|
40
40
|
**Options:**
|
|
41
|
-
1. **Start
|
|
41
|
+
1. **Start `ce:work`** (recommended) - Begin implementing this plan in the current session
|
|
42
42
|
2. **Create Issue** - Create a tracked issue from this plan in your configured issue tracker (GitHub or Linear)
|
|
43
43
|
3. **Open in Proof (web app) — review and comment to iterate with the agent** - Open the doc in Every's Proof editor, iterate with the agent via comments, or copy a link to share with others
|
|
44
44
|
4. **Done for now** - Pause; the plan file is saved and can be resumed later
|
|
@@ -46,19 +46,19 @@ After document-review completes, present the options using the platform's blocki
|
|
|
46
46
|
**Surface additional document review contextually, not as a menu fixture:** When the prior document-review pass surfaced residual P0/P1 findings that the user has not addressed, mention them adjacent to the menu and offer another review pass in prose (e.g., "Document review flagged 2 P1 findings you may want to address — want me to run another pass before you pick?"). Do not add it to the option list.
|
|
47
47
|
|
|
48
48
|
Based on selection:
|
|
49
|
-
- **Start
|
|
49
|
+
- **Start `ce:work`** -> Call `ce:work` with the plan path
|
|
50
50
|
- **Create Issue** -> Follow the Issue Creation section below
|
|
51
51
|
- **Open in Proof (web app) — review and comment to iterate with the agent** -> Load the `ce-proof` skill in HITL-review mode with:
|
|
52
52
|
- source file: `docs/plans/<plan_filename>.md`
|
|
53
53
|
- doc title: `Plan: <plan title from frontmatter>`
|
|
54
54
|
- identity: `ai:systematic` / `Systematic`
|
|
55
|
-
- recommended next step:
|
|
55
|
+
- recommended next step: `ce:work` (shown in the ce-proof skill's final terminal output)
|
|
56
56
|
|
|
57
57
|
Follow `references/hitl-review.md` in the ce-proof skill. It uploads the plan, prompts the user for review in Proof's web UI, ingests each thread by reading it fresh and replying in-thread, applies agreed edits as tracked suggestions, and syncs the final markdown back to the plan file atomically on proceed.
|
|
58
58
|
|
|
59
59
|
When the ce-proof skill returns:
|
|
60
60
|
- `status: proceeded` with `localSynced: true` -> the plan on disk now reflects the review. Re-run `ce-doc-review` on the updated plan before re-rendering the menu — HITL can materially rewrite the plan body, so the prior ce-doc-review pass no longer covers the current file and section 5.3.8 requires a review before any handoff option is offered. Then return to the post-generation options with the refreshed residual findings.
|
|
61
|
-
- `status: proceeded` with `localSynced: false` -> the reviewed version lives in Proof at `docUrl` but the local copy is stale. Offer to pull the Proof doc to `localPath` using the ce-proof skill's Pull workflow. If the pull happened, re-run `ce-doc-review` on the pulled file before re-rendering the options (same 5.3.8 rationale — the local plan was materially updated by the pull). If the pull was declined, include a one-line note above the menu that `<localPath>` is stale vs. Proof — otherwise `Start
|
|
61
|
+
- `status: proceeded` with `localSynced: false` -> the reviewed version lives in Proof at `docUrl` but the local copy is stale. Offer to pull the Proof doc to `localPath` using the ce-proof skill's Pull workflow. If the pull happened, re-run `ce-doc-review` on the pulled file before re-rendering the options (same 5.3.8 rationale — the local plan was materially updated by the pull). If the pull was declined, include a one-line note above the menu that `<localPath>` is stale vs. Proof — otherwise `Start ce:work` or `Create Issue` will silently use the pre-review copy.
|
|
62
62
|
- `status: done_for_now` -> the plan on disk may be stale if the user edited in Proof before leaving. Offer to pull the Proof doc to `localPath` so the local plan file stays in sync. If the pull happened, re-run `ce-doc-review` on the pulled file before re-rendering the options (same 5.3.8 rationale). If the pull was declined, include the stale-local note above the menu. `done_for_now` means the user stopped the HITL loop — it does not mean they ended the whole plan session; they may still want to start work or create an issue.
|
|
63
63
|
- `status: aborted` -> fall back to the options without changes.
|
|
64
64
|
|
|
@@ -93,4 +93,4 @@ When the user selects "Create Issue", detect their project tracker:
|
|
|
93
93
|
|
|
94
94
|
After issue creation:
|
|
95
95
|
- Display the issue URL
|
|
96
|
-
- Ask whether to proceed to
|
|
96
|
+
- Ask whether to proceed to `ce:work` using the platform's blocking question tool
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Plan Sections
|
|
2
|
+
|
|
3
|
+
This reference describes what makes a great implementation plan. It does NOT
|
|
4
|
+
prescribe how the plan looks on the page — rendering is handled by
|
|
5
|
+
`references/markdown-rendering.md`.
|
|
6
|
+
|
|
7
|
+
## The outcome
|
|
8
|
+
|
|
9
|
+
A great plan enables three audiences to act:
|
|
10
|
+
|
|
11
|
+
- **The implementing agent** (`ce:work` or a human) starts from an informed
|
|
12
|
+
baseline — load-bearing decisions are named, research breadcrumbs orient
|
|
13
|
+
their own investigation, unit boundaries are clear. The plan gives the
|
|
14
|
+
implementer a starting point, not a substitute for their own investigation.
|
|
15
|
+
- **The reviewer** identifies the load-bearing decisions and the boundaries
|
|
16
|
+
of what's being changed in one pass.
|
|
17
|
+
- **The future reader** (anyone returning months later) traces why the work
|
|
18
|
+
was done, what shaped it, and where the artifacts live.
|
|
19
|
+
|
|
20
|
+
Sections earn their place by serving one of these audiences. Omit padding.
|
|
21
|
+
|
|
22
|
+
## Decide whether a plan doc is warranted at all
|
|
23
|
+
|
|
24
|
+
Not every invocation of `ce:plan` should produce a plan document. For
|
|
25
|
+
genuinely atomic work, the doc is ceremony — the implementer (whether
|
|
26
|
+
`ce:work` or a human) can act directly without IDed units, KTDs, or
|
|
27
|
+
Requirements as a checklist.
|
|
28
|
+
|
|
29
|
+
**Bias toward producing a plan.** The risk asymmetry favors writing one:
|
|
30
|
+
a thin plan doc for small work is mild ceremony, but skipping a plan when
|
|
31
|
+
one was warranted costs the implementer real time (reinvented decisions,
|
|
32
|
+
lost unit boundaries, no IDed requirements to verify against). When unsure,
|
|
33
|
+
write the plan.
|
|
34
|
+
|
|
35
|
+
**Skip plan creation only when ALL of these hold:**
|
|
36
|
+
|
|
37
|
+
- The work is **atomic** — fits in one commit, no meaningful unit boundaries
|
|
38
|
+
to break out independently.
|
|
39
|
+
- There are **no design choices that constrain implementation** — no
|
|
40
|
+
Key Technical Decisions worth recording. If the work needs the implementer
|
|
41
|
+
to make a choice between two approaches, those approaches are KTDs and
|
|
42
|
+
a plan is warranted.
|
|
43
|
+
- There are **no scope boundaries worth pinning** in writing — the work
|
|
44
|
+
scope is self-evident from the user's request.
|
|
45
|
+
- **No upstream artifact** (a brainstorm with R-IDs, an incident report,
|
|
46
|
+
a deferred-follow-up item from a prior plan) needs traceability through
|
|
47
|
+
this plan.
|
|
48
|
+
|
|
49
|
+
**Stress test the "looks atomic" case.** Many requests look atomic at first
|
|
50
|
+
glance but hide design decisions:
|
|
51
|
+
|
|
52
|
+
- *"Add caching to this endpoint"* — sounds atomic, but TTL, invalidation,
|
|
53
|
+
cache key shape, and backend selection are all KTDs. Write the plan.
|
|
54
|
+
- *"Migrate from package A to package B"* — sounds mechanical, but
|
|
55
|
+
semantic differences between the packages create migration KTDs. Write
|
|
56
|
+
the plan.
|
|
57
|
+
- *"Add rate limiting"* — sounds small, but algorithm, scope, and
|
|
58
|
+
configurability are all KTDs. Write the plan.
|
|
59
|
+
|
|
60
|
+
vs. genuine skip cases:
|
|
61
|
+
|
|
62
|
+
- *"Fix typo in README line 47"* — atomic, no KTDs, skip the plan.
|
|
63
|
+
- *"Rename `oldFn` to `newFn` across the repo"* — mechanical, no design
|
|
64
|
+
choices, skip the plan.
|
|
65
|
+
- *"Bump dependency X to v2.3.1"* — mechanical, skip the plan (unless the
|
|
66
|
+
bump introduces breaking changes that warrant unit-by-unit migration).
|
|
67
|
+
|
|
68
|
+
When skipping the plan doc, the work proceeds directly to `ce:work` or to
|
|
69
|
+
implementation, and any decisions made along the way land in the commit
|
|
70
|
+
message or `docs/solutions/` if they're worth carrying forward.
|
|
71
|
+
|
|
72
|
+
> **Section inventory and meaning are owned by the Core Plan Template in `ce-plan/SKILL.md`; this file covers only how sections render and order.**
|
|
73
|
+
|
|
74
|
+
## Plan metadata fields
|
|
75
|
+
|
|
76
|
+
Every plan carries a small set of stable metadata fields that downstream
|
|
77
|
+
tooling depends on. In markdown these fields appear as YAML frontmatter at
|
|
78
|
+
the top of the file. Field names and semantics are stable across plan
|
|
79
|
+
revisions — never rename or repurpose a field.
|
|
80
|
+
|
|
81
|
+
### Required
|
|
82
|
+
|
|
83
|
+
- **`title`** — verbatim plan title. Matches the H1 heading so file metadata
|
|
84
|
+
and visible heading don't drift.
|
|
85
|
+
- **`type`** — conventional-commit-prefix-aligned classification (`feat`,
|
|
86
|
+
`fix`, `refactor`, `chore`, `docs`, `perf`, `test`, etc.). Carries the
|
|
87
|
+
intent the eventual commit message should reflect.
|
|
88
|
+
- **`status`** — `active` on creation; `ce:work` flips to `completed` on
|
|
89
|
+
ship. `ce:plan`'s Phase 0.1 resume fast path keys on `active`.
|
|
90
|
+
- **`date`** — creation date in ISO 8601 (`YYYY-MM-DD`), ASCII digits only.
|
|
91
|
+
|
|
92
|
+
### Optional but well-known
|
|
93
|
+
|
|
94
|
+
These fields are not required, but when set they have fixed names and
|
|
95
|
+
semantics so downstream tooling can rely on them:
|
|
96
|
+
|
|
97
|
+
- **`origin`** — repo-relative path to an upstream brainstorm requirements
|
|
98
|
+
doc (e.g., `docs/brainstorms/2026-05-12-pagination-requirements.md`).
|
|
99
|
+
Set when planning from an upstream brainstorm; carried for traceability
|
|
100
|
+
and re-resolved when `ce:plan` re-deepens.
|
|
101
|
+
- **`deepened`** — ISO 8601 date marking the first time the confidence
|
|
102
|
+
check substantively strengthened the plan. Presence affects Phase 0.1
|
|
103
|
+
resume fast-path logic (see `references/deepening-workflow.md`).
|
|
104
|
+
|
|
105
|
+
Field names are stable across plan revisions — never rename a field or
|
|
106
|
+
repurpose its semantics. Agents composing new plans MUST use these exact
|
|
107
|
+
names; adding new fields is fine, but renaming `status` to `state` or
|
|
108
|
+
`origin` to `source` breaks the downstream consumers above.
|
|
109
|
+
|
|
110
|
+
## Rendering
|
|
111
|
+
|
|
112
|
+
The format-specific reference describes how to render plan sections:
|
|
113
|
+
|
|
114
|
+
- **Markdown rendering:** `references/markdown-rendering.md`
|
|
115
|
+
|
|
116
|
+
This reference (`plan-sections.md`) covers metadata format and rendering conventions;
|
|
117
|
+
section inventory and content rules live in the Core Plan Template in `ce-plan/SKILL.md`.
|