@blxzer/cursor-trellis 0.4.0 → 0.4.1
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/CHANGELOG.md +17 -2
- package/README.md +4 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +6 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/configurators/shared.d.ts.map +1 -1
- package/dist/configurators/shared.js +2 -1
- package/dist/configurators/shared.js.map +1 -1
- package/dist/configurators/workflow.d.ts +7 -0
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +23 -1
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/migrations/manifests/0.4.1.json +9 -0
- package/dist/templates/common/{skills/check.md → bundled-skills/cstl-check/SKILL.md} +55 -7
- package/dist/templates/common/bundled-skills/cstl-check/references/fowler-12-smells.md +28 -0
- package/dist/templates/common/bundled-skills/cstl-handoff/SKILL.md +117 -0
- package/dist/templates/common/bundled-skills/cstl-micro-grill/SKILL.md +6 -0
- package/dist/templates/common/skills/brainstorm.md +15 -0
- package/dist/templates/cursor/agents/cstl-check.md +14 -0
- package/dist/templates/cursor/commands/handoff.md +99 -0
- package/dist/templates/trellis/CONTEXT.md +53 -0
- package/dist/templates/trellis/docs/adr/README.md +21 -0
- package/dist/templates/trellis/index.d.ts +2 -0
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +3 -0
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/common/artifact_locale.py +16 -0
- package/dist/templates/trellis/tasks/locale/en/default-prd.md +8 -0
- package/dist/templates/trellis/tasks/locale/zh/default-prd.md +8 -0
- package/dist/templates/trellis/workflow.md +2 -0
- package/dist/utils/manifest-prune.d.ts.map +1 -1
- package/dist/utils/manifest-prune.js +7 -0
- package/dist/utils/manifest-prune.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.4.1",
|
|
3
|
+
"description": "Approved-surface backfill: cstl-handoff + session boundary, cstl-check dual-axis, grilling frontier, PRD grain, CONTEXT/ADR stub",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "**@blxzer/cursor-trellis 0.4.1**\n\n- feat(skills): ship `cstl-handoff` bundled skill + Cursor `/cstl-handoff` command\n- feat(workflow): session boundary line; task `handoff.md` ≠ session handoff\n- feat(skills): `cstl-check` dual-axis (Standards/Spec) + Fowler 12 smells asset\n- feat(skills): grilling frontier in brainstorm + micro-grill\n- feat(templates): PRD grain (User Stories / Implementation Decisions) in default-prd en/zh\n- feat(templates): minimal CONTEXT.md stub + docs/adr README\n- chore: empty migrations list (template sync via `cstl update`)",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "Run `cstl update` to sync workflow/skills/templates. No `--migrate` required."
|
|
9
|
+
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cstl-check
|
|
3
|
+
description: "Comprehensive quality verification on two axes — Standards (spec compliance, lint, type-check, tests, code smells, cross-layer data flow) and Spec (prd fidelity, scope, learning/spec-sync). Use when code is written and needs quality verification, before committing changes, or to catch context drift during long sessions."
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Code Quality Check
|
|
2
7
|
|
|
3
8
|
Comprehensive quality verification for recently written code. Combines spec compliance, cross-layer safety, and pre-commit checks.
|
|
@@ -35,9 +40,19 @@ Read the specific guideline files referenced — the index is a pointer, not the
|
|
|
35
40
|
|
|
36
41
|
Run the project's lint, type-check, and test commands. Fix any failures before proceeding.
|
|
37
42
|
|
|
38
|
-
## Step 4: Review Against Checklist
|
|
43
|
+
## Step 4: Review Against Checklist (dual-axis)
|
|
44
|
+
|
|
45
|
+
Report **Standards and Spec in two separate sections** — never merge them into a single severity ranking. Standards findings first, then Spec findings; the same issue may be cross-referenced on both sides, but one axis must not mask the other. Do NOT output a "combined top risks" list mixing spec violations with requirement deviations.
|
|
46
|
+
|
|
47
|
+
### Dual-axis dispatch (Full+ only)
|
|
48
|
+
|
|
49
|
+
- **Lite / no task context**: single pass — the main agent runs Standards then Spec sequentially (no parallel split).
|
|
50
|
+
- **Full+ and sub-agents available**: may dispatch two read-only review sub-agents in parallel (a Standards-agent and a Spec-agent). They **only report findings, never modify code**; the main agent consolidates and fixes per Step 6.
|
|
51
|
+
- **Sub-agents unavailable**: degrade to single pass — do not block the check.
|
|
39
52
|
|
|
40
|
-
###
|
|
53
|
+
### Standards (did we write it right)
|
|
54
|
+
|
|
55
|
+
#### Code Quality
|
|
41
56
|
|
|
42
57
|
- [ ] Linter passes?
|
|
43
58
|
- [ ] Type checker passes (if applicable)?
|
|
@@ -45,7 +60,7 @@ Run the project's lint, type-check, and test commands. Fix any failures before p
|
|
|
45
60
|
- [ ] No debug logging left in?
|
|
46
61
|
- [ ] No suppressed warnings or type-safety bypasses?
|
|
47
62
|
|
|
48
|
-
|
|
63
|
+
#### Test Coverage (verification strength — not TDD)
|
|
49
64
|
|
|
50
65
|
Follow `.cstl/spec/guides/verification-strength-guide.md` for **graded** validation depth by closeout profile. cstl does **not** mandate red-green TDD or per-function unit tests.
|
|
51
66
|
|
|
@@ -54,7 +69,22 @@ Follow `.cstl/spec/guides/verification-strength-guide.md` for **graded** validat
|
|
|
54
69
|
- [ ] New function / bug fix → add or update tests **when the project's norms and task scope require it** — not as automatic TDD ceremony
|
|
55
70
|
- [ ] `python ./.cstl/scripts/task.py validate <task>` passing JSONL schema **≠** task acceptance; substantive `verify.md` signals still required
|
|
56
71
|
|
|
57
|
-
|
|
72
|
+
#### Fowler 12 Smells
|
|
73
|
+
|
|
74
|
+
Scan the change surface against `references/fowler-12-smells.md` (12 named smells, one-line criterion + don't-report boundary each). Report when hit, `N/A` when not — do not pad the report with misses.
|
|
75
|
+
|
|
76
|
+
#### False-positive calibration (AI cross-review)
|
|
77
|
+
|
|
78
|
+
Before prioritizing any CRITICAL/WARNING finding, read `.cstl/spec/guides/index.md` → **"When Verifying AI Cross-Review Results"**: verify each finding against the actual code; budget ~35% false-positive rate for AI reviews; typical patterns: trust boundary confusion, ignoring design comments, variable misreading.
|
|
79
|
+
|
|
80
|
+
### Spec (did we build the right thing)
|
|
81
|
+
|
|
82
|
+
#### prd / design / implement fidelity
|
|
83
|
+
|
|
84
|
+
- [ ] Against `prd.md` Goal / Requirements / Acceptance Criteria: is the implementation faithful, and does it stay **within scope** (no over-scope)?
|
|
85
|
+
- [ ] Are `design.md` / `implement.md` boundaries violated (if present)?
|
|
86
|
+
|
|
87
|
+
#### Durable Learning (Phase 3.3)
|
|
58
88
|
|
|
59
89
|
- [ ] `verify.md` contains exactly one token: `Learning decision: update-spec` | `no-update` | `unsure`
|
|
60
90
|
- [ ] If `update-spec` or `unsure`: `research/learning-proposal.md` exists (or documented `N/A` with reason) and matches the decision
|
|
@@ -62,13 +92,13 @@ Follow `.cstl/spec/guides/verification-strength-guide.md` for **graded** validat
|
|
|
62
92
|
- [ ] If `update-spec`: spec was written only after confirmation; `Spec update evidence:` points at `.cstl/spec/...`
|
|
63
93
|
- [ ] No silent edits to `.cstl/spec/` without confirmation
|
|
64
94
|
|
|
65
|
-
|
|
95
|
+
#### Spec Sync
|
|
66
96
|
|
|
67
97
|
- [ ] Does `.cstl/spec/` need updates? (route through semi-automatic flow: proposal → confirm → `cstl-update-spec`)
|
|
68
98
|
|
|
69
99
|
> "If I fixed a bug or discovered something non-obvious, should I document it so future me won't hit the same issue?" → If YES, update the relevant spec doc.
|
|
70
100
|
|
|
71
|
-
|
|
101
|
+
#### Retrieval evidence (when task used research / smart-search / optional pack)
|
|
72
102
|
|
|
73
103
|
- [ ] **`verify.md` lists unresolved retrieval gaps** — external facts still unverified, missing `research/` or `research/smart-search/` evidence, or claims without source/Git/test corroboration
|
|
74
104
|
- [ ] If `{TASK}/research/retrieval-pack-latest.json` exists, top `contextPack.selected` items are cited or gaps are explicitly noted in `verify.md`
|
|
@@ -77,6 +107,24 @@ Follow `.cstl/spec/guides/verification-strength-guide.md` for **graded** validat
|
|
|
77
107
|
|
|
78
108
|
When present, Read the pack and ensure `verify.md` has `## Evidence pack reference` citing `contextPack.selected` (`title`, `source`, `reference`, `score`) or explicit gaps. Empty `selected` with existing `research/` → note stale pack or scoring failure in `verify.md`.
|
|
79
109
|
|
|
110
|
+
#### Terminology / ADR consistency (one line)
|
|
111
|
+
|
|
112
|
+
- [ ] Read root `CONTEXT.md`: do terms in the change mix `_Avoid_` aliases? If an irreversible decision was introduced, should there be an ADR? (Prompt only — do not force creating a file.)
|
|
113
|
+
|
|
114
|
+
### Report format
|
|
115
|
+
|
|
116
|
+
```markdown
|
|
117
|
+
## Standards findings
|
|
118
|
+
- [sev] ...
|
|
119
|
+
|
|
120
|
+
## Spec findings
|
|
121
|
+
- [sev] ...
|
|
122
|
+
|
|
123
|
+
## Summary
|
|
124
|
+
- Standards: N issues (not ranked against Spec)
|
|
125
|
+
- Spec: M issues
|
|
126
|
+
```
|
|
127
|
+
|
|
80
128
|
## Step 5: Cross-Layer Dimensions (if applicable)
|
|
81
129
|
|
|
82
130
|
Skip this step if your change is confined to a single layer.
|
|
@@ -110,4 +158,4 @@ Skip this step if your change is confined to a single layer.
|
|
|
110
158
|
|
|
111
159
|
## Step 6: Report and Fix
|
|
112
160
|
|
|
113
|
-
Report violations found and fix them directly. Re-run project checks after fixes.
|
|
161
|
+
Report violations found (Standards and Spec sections per Step 4 format) and fix them directly. Parallel review sub-agents **do not fix** — the main agent owns all fixes. Re-run project checks after fixes.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Fowler 12 Smells — Quick Criterion Reference
|
|
2
|
+
|
|
3
|
+
Scan the change surface line by line: report when a smell is hit, write `N/A` when not. Each criterion is a one-line "is" definition; the **don't-report** boundaries guard against false positives (paired with the ~35% false-positive discipline in `.cstl/spec/guides/index.md`).
|
|
4
|
+
|
|
5
|
+
1. **Mysterious Name** — a name fails to express the code's intent (what it does / why it exists); the reader must read the implementation to understand it.
|
|
6
|
+
Don't report: evaluate only within the changed lines; do not opportunistically flag historical naming outside the change surface.
|
|
7
|
+
2. **Duplicated Code** — the same structure/expression is repeated in 2+ places, so a change must be synced across several sites.
|
|
8
|
+
Don't report: small test boilerplate (e.g. a one-line setup) where extraction would reduce readability.
|
|
9
|
+
3. **Feature Envy** — a method uses another object's data/methods far more than its own.
|
|
10
|
+
Don't report: an orchestration point that coordinates multiple collaborators is the method's job, not envy.
|
|
11
|
+
4. **Data Clumps** — the same group of fields/parameters keep appearing together and should be bundled into an object.
|
|
12
|
+
Don't report: don't force types that only bundle without adding behavior (lazy creation discipline).
|
|
13
|
+
5. **Primitive Obsession** — primitives (string/number/bool) carry concepts that deserve their own type (IDs, amounts, states).
|
|
14
|
+
Don't report: when the value domain is already constrained by an existing validation/config layer and adds no new behavior.
|
|
15
|
+
6. **Repeated Switches** — the same discriminating field (kind/type/status) drives switch/if-else chains repeated in multiple places.
|
|
16
|
+
Don't report: 1–2 occurrences where that is the language idiom (e.g. ADT pattern matching).
|
|
17
|
+
7. **Shotgun Surgery** — one conceptual change requires synchronized edits scattered across many places.
|
|
18
|
+
Don't report: when the multiple edits are concentrated in one cohesive module (locality holds).
|
|
19
|
+
8. **Divergent Change** — one module changes frequently for many different reasons.
|
|
20
|
+
Don't report: when the module is an intentional facade/aggregator.
|
|
21
|
+
9. **Speculative Generality** — abstractions/parameters/hooks are built for imagined future needs with no current caller.
|
|
22
|
+
Don't report: abstractions actually used in this change.
|
|
23
|
+
10. **Message Chains** — a long call chain `a.b().c().d()` is needed to reach a target value, with intermediate links being pure pass-through.
|
|
24
|
+
Don't report: when the fluent/builder chain is itself the public interface.
|
|
25
|
+
11. **Middle Man** — a class/method mostly forwards to somewhere else and adds little value of its own.
|
|
26
|
+
Don't report: when the forwarding provides encapsulation/seam value (e.g. an adapter sitting at a seam).
|
|
27
|
+
12. **Refused Bequest** — a subclass barely uses inherited parent behavior/fields, making the inheritance relationship nominal.
|
|
28
|
+
Don't report: when inheritance is used only for type identity/interface satisfaction (is-a semantics) or the unused members are minimal.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cstl-handoff
|
|
3
|
+
description: "Condense the current session into a portable handoff document so a new agent / harness / directory can continue the work. User-invoked when the work needs to 'travel' (switch harness, switch directory or repo, hand to a colleague, or fork a side branch); writes to the OS temp directory and reports the full path."
|
|
4
|
+
argument-hint: "What will the next session use this for?"
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# cstl-handoff — Session handoff
|
|
9
|
+
|
|
10
|
+
Condense the current session into a **portable** handoff document (`cstl-handoff-{yyyyMMdd-HHmmss}-{slug}.md`), written to the **OS temp directory** (does not pollute the workspace), so a new agent can continue without the original session. User-invoked (`disable-model-invocation: true` — the agent never triggers it on its own; it is written only when the user invokes `/cstl-handoff`).
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## How this differs from a task `handoff.md` (read first)
|
|
15
|
+
|
|
16
|
+
**The two have opposite purposes — not interchangeable:**
|
|
17
|
+
|
|
18
|
+
| | This skill (session handoff) | Task `handoff.md` |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| What | Portable cross-session summary | Child-task integration / implementation-window **delivery evidence** |
|
|
21
|
+
| Where | OS temp directory (volatile) | `.cstl/tasks/<task>/` (durable, archived with the task) |
|
|
22
|
+
| Lifecycle | Single transfer; dead once the work lands | Kept with the task evidence for Parent / review traces |
|
|
23
|
+
|
|
24
|
+
A task directory's `handoff.md` is the evidence file for `integrate-child` / `review-child`, **not** a session handoff document; the temp file this skill produces is **not** task evidence.
|
|
25
|
+
|
|
26
|
+
## When to use / when not (five-question tree)
|
|
27
|
+
|
|
28
|
+
At stage boundaries first ask: **does the work still continue in this session?**
|
|
29
|
+
|
|
30
|
+
1. **Continue** — default preference: keep going in this session
|
|
31
|
+
2. **Clear** — context can be dropped; clear and restart
|
|
32
|
+
3. **Handoff** — the work needs to travel → this skill
|
|
33
|
+
4. **Subagent** — a side branch can run in parallel while the main session stays → dispatch a subagent (optionally with a handoff file)
|
|
34
|
+
5. **Compact** — same harness, same directory, only intent compression needed → use the platform compact
|
|
35
|
+
|
|
36
|
+
**Handoff only when the work needs to travel**, triggered by exactly four situations:
|
|
37
|
+
|
|
38
|
+
| Situation | Why a file is needed |
|
|
39
|
+
| --- | --- |
|
|
40
|
+
| Switch harness (e.g. Cursor → Codex) | The new harness cannot see the old context |
|
|
41
|
+
| Switch directory / repo | Common for prototype directories and new repos |
|
|
42
|
+
| Hand to a colleague | They need something they can read independently |
|
|
43
|
+
| Fork a side branch (main line continues) | You stay in this session; a second agent takes a copy in parallel |
|
|
44
|
+
|
|
45
|
+
**Same harness, same directory continuation → compact / continue, not handoff.** The value of handoff is **portability**, not better compression; if only intent compression is wanted, `/compact` is the better fit.
|
|
46
|
+
|
|
47
|
+
## Steps
|
|
48
|
+
|
|
49
|
+
1. **Read the user argument**: the "next-session purpose" passed on invocation decides which whys to keep (trim key decision rationale by purpose — do not take everything verbatim).
|
|
50
|
+
2. **Write the temp file** (path rules below).
|
|
51
|
+
3. **Report the full absolute path** (required): temp paths are long and differ per OS; the user must get the path first.
|
|
52
|
+
4. **Remind about volatility**: the temp file may be cleaned by the environment (Codex clears temp across sessions; `/private/tmp` is lost on reboot). For cross-hour / cross-harness continuation, ask the user to copy it to a durable location immediately (this also applies to other temp files referenced by the document).
|
|
53
|
+
|
|
54
|
+
### Path rules (Windows first)
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
$env:TEMP\cstl-handoff-{yyyyMMdd-HHmmss}-{slug}.md
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- Windows: `$env:TEMP` (i.e. `%TEMP%`), e.g. `C:\Users\<user>\AppData\Local\Temp\cstl-handoff-20260808-153000-migrate-ts.md`
|
|
61
|
+
- Linux / macOS: `$TMPDIR/cstl-handoff-{yyyyMMdd-HHmmss}-{slug}.md` (`/tmp` when `$TMPDIR` is unset)
|
|
62
|
+
- After writing, always report the **full absolute path** to the user (Write-Host or plain text) — never just the filename.
|
|
63
|
+
|
|
64
|
+
## Content template (English skeleton)
|
|
65
|
+
|
|
66
|
+
> Follow `artifact_locale` when the project uses it; English by default.
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
# Session handoff — <work summary>
|
|
70
|
+
|
|
71
|
+
> Generated by cstl-handoff at <time> · Next-session purpose: <user argument>
|
|
72
|
+
|
|
73
|
+
## Goal
|
|
74
|
+
<what the in-flight work is trying to achieve>
|
|
75
|
+
|
|
76
|
+
## Done
|
|
77
|
+
- <items>
|
|
78
|
+
|
|
79
|
+
## Not done / Blocked
|
|
80
|
+
- <items>
|
|
81
|
+
|
|
82
|
+
## Next steps
|
|
83
|
+
1. <ordered steps>
|
|
84
|
+
|
|
85
|
+
## Key whys (trimmed by next-session purpose)
|
|
86
|
+
- <decision + reason; whys unrelated to this purpose can be omitted>
|
|
87
|
+
|
|
88
|
+
## Facts vs unverified beliefs
|
|
89
|
+
- Facts: <verified>
|
|
90
|
+
- Beliefs (unverified): <assumptions — never write them as facts>
|
|
91
|
+
|
|
92
|
+
## Pointers (reference paths only, never copy bodies)
|
|
93
|
+
- Task: `.cstl/tasks/<task>/` (prd.md / design.md / implement.md / verify.md)
|
|
94
|
+
- Context: `CONTEXT.md` · Research: `<task>/research/`
|
|
95
|
+
- Prototype evidence (if a prototype was involved): `<task>/research/prototype-<slug>.py` (see `.cstl/spec/guides/prototype-guide.md` §9)
|
|
96
|
+
- Other: ADR / issue / commit / diff paths or URLs
|
|
97
|
+
|
|
98
|
+
## Suggested skills (for the continuing agent)
|
|
99
|
+
- <skill name list, e.g. cstl-brainstorm, cstl-check, cstl-continue>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Rules
|
|
103
|
+
|
|
104
|
+
- **Reference, don't copy**: anything already on disk (spec / PRD / ADR / issue / commit / diff) gets a path or URL only, never pasted verbatim. The document should be a small part of the session; a path list replaces copying.
|
|
105
|
+
- **Redact**: API keys, tokens, passwords, PII → replace with `<REDACTED>` before writing; when unsure, write `<REDACTED>`.
|
|
106
|
+
- **Facts vs beliefs**: unverified assumptions must be marked, never written as verified facts — the continuing agent will treat the document as a contract and will not re-check.
|
|
107
|
+
- **Prototype evidence pointer**: when the session involved a prototype, list the prototype evidence path in the pointers section (`prototype-guide.md` §9: git throwaway branch or a task `research/` path snapshot) and confirm the evidence is captured before cleanup.
|
|
108
|
+
- **Delivery**: have the new agent **read the file path**; do not stuff the summary into shell quotes to launch the new agent (backticks / `$(...)` get swallowed and silently truncated).
|
|
109
|
+
|
|
110
|
+
## Anti-patterns
|
|
111
|
+
|
|
112
|
+
- ❌ Treating handoff as a long-lived document: it is a transit document for a single transfer and dies once the work lands (long-term facts belong in `AGENTS.md` / spec, not handoff)
|
|
113
|
+
- ❌ Pasting large spec / PRD / diff bodies (should reference paths only)
|
|
114
|
+
- ❌ Stuffing the summary into shell quotes to launch the next agent (silent truncation risk)
|
|
115
|
+
- ❌ Not reporting the full path / not reminding about temp volatility
|
|
116
|
+
- ❌ Writing a handoff for same-harness same-directory continuation (should compact / continue)
|
|
117
|
+
- ❌ Writing keys / tokens into the document
|
|
@@ -43,6 +43,12 @@ Your recommended answer defaults to the **minimal sufficient** option that still
|
|
|
43
43
|
5. After the user answers, summarize the clarified requirement in one or two Chinese sentences.
|
|
44
44
|
6. Execute directly once the requirement is clear enough.
|
|
45
45
|
|
|
46
|
+
## Frontier support (optional)
|
|
47
|
+
|
|
48
|
+
Default is one question at a time (small-request clarification). When several questions can be asked together and their prerequisites are all decided (**≤3 questions**), list them in one round (numbered + recommended answers) and wait for a batch reply. Beyond that, keep one question at a time.
|
|
49
|
+
|
|
50
|
+
Facts the environment can self-check do not consume question slots: self-check first (Hard Constraints: always inspect local files first); while a fact check is pending it only blocks the questions that depend on it — ask the rest of the frontier without blocking.
|
|
51
|
+
|
|
46
52
|
## Escalation
|
|
47
53
|
|
|
48
54
|
Escalate once when the clarified work no longer fits Micro-Grill:
|
|
@@ -14,6 +14,8 @@ This is mandatory. Before asking the user a question, first check whether the an
|
|
|
14
14
|
|
|
15
15
|
Do not ask the user to confirm facts that the repository can answer. Ask only for product intent, preference, scope, risk tolerance, or decisions that remain ambiguous after inspection.
|
|
16
16
|
|
|
17
|
+
Read root `CONTEXT.md` (if present) before asking questions, and use its glossary terms.
|
|
18
|
+
|
|
17
19
|
## Thinking Principles
|
|
18
20
|
|
|
19
21
|
These two principles shape *how* you grill, not just *what* you ask. Apply them throughout Phase A and B.
|
|
@@ -128,6 +130,19 @@ Stop micro-grill when no blocking open questions remain.
|
|
|
128
130
|
|
|
129
131
|
Do not ask process questions ("should I search?"). Do not re-ask facts Discovery already confirmed.
|
|
130
132
|
|
|
133
|
+
## Frontier rounds (question pacing)
|
|
134
|
+
|
|
135
|
+
PRD Grill questions advance in **frontier rounds**:
|
|
136
|
+
|
|
137
|
+
- **frontier** = all "prerequisite-decided" questions: their prerequisite decisions are resolved, so they can be asked now without guessing unheard answers.
|
|
138
|
+
- Each round lists the current frontier at once, each question numbered (❓Q1/Q2/Q3…) with a recommended answer.
|
|
139
|
+
- **≤3 questions per round**; split into more rounds beyond that to avoid information overload.
|
|
140
|
+
- **Facts are the agent's job**: when a frontier question needs environment facts, dispatch a sub-agent to check; while exploration is pending it counts as an unresolved prerequisite that only blocks its downstream questions — ask the rest of the frontier anyway.
|
|
141
|
+
- **Decisions are the user's job**: every decision waits for the user's answer; do not answer for them.
|
|
142
|
+
- A user answer reshapes the design tree and the frontier extrapolates into the next round; **an empty frontier = the design tree is exhausted** — summarize the consensus and confirm before treating planning as done.
|
|
143
|
+
|
|
144
|
+
> **Override note:** this section overrides the "Ask the questions one at a time" line in the Non-Negotiable Interview Contract — Phase B (PRD Grill) pacing follows these frontier rounds rather than one-question-at-a-time; `cstl-micro-grill` still defaults to one question at a time.
|
|
145
|
+
|
|
131
146
|
## Question Rules (Phase B only)
|
|
132
147
|
|
|
133
148
|
Each question must include:
|
|
@@ -144,6 +144,20 @@ If `contextPack.selected` is empty but research artifacts exist, document why (b
|
|
|
144
144
|
|
|
145
145
|
## Report Format
|
|
146
146
|
|
|
147
|
+
Report **Standards and Spec in two separate sections** — never merge them into a single severity ranking (dual-axis, aligned with the `cstl-check` skill). Standards findings first, then Spec findings; the same issue may be cross-referenced on both sides, but one axis must not mask the other.
|
|
148
|
+
|
|
149
|
+
```markdown
|
|
150
|
+
## Standards findings
|
|
151
|
+
- [sev] <file>:<line> - <finding>
|
|
152
|
+
|
|
153
|
+
## Spec findings
|
|
154
|
+
- [sev] <file>:<line> - <finding>
|
|
155
|
+
|
|
156
|
+
## Summary
|
|
157
|
+
- Standards: N issues (not ranked against Spec)
|
|
158
|
+
- Spec: M issues
|
|
159
|
+
```
|
|
160
|
+
|
|
147
161
|
```markdown
|
|
148
162
|
## Self-Check Complete
|
|
149
163
|
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Session Handoff (cstl-handoff)
|
|
2
|
+
|
|
3
|
+
Condense the current session into a **portable** handoff document (`cstl-handoff-{yyyyMMdd-HHmmss}-{slug}.md`), written to the **OS temp directory** (does not pollute the workspace), so a new agent can continue without the original session. This command is the Cursor invocation surface for the `cstl-handoff` skill — mirror of `common/bundled-skills/cstl-handoff/SKILL.md`; keep the two aligned when editing.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## When to use / when not
|
|
8
|
+
|
|
9
|
+
At stage boundaries first ask: **does the work still continue in this session?**
|
|
10
|
+
|
|
11
|
+
1. **Continue** — default preference: keep going in this session
|
|
12
|
+
2. **Clear** — context can be dropped; clear and restart
|
|
13
|
+
3. **Handoff** — the work needs to travel → this command
|
|
14
|
+
4. **Subagent** — a side branch can run in parallel while the main session stays → dispatch a subagent (optionally with a handoff file)
|
|
15
|
+
5. **Compact** — same harness, same directory, only intent compression needed → use the platform compact
|
|
16
|
+
|
|
17
|
+
**Handoff only when the work needs to travel**: switch harness, switch directory / repo, hand to a colleague, or fork a side branch. Same harness + same directory continuation → compact / continue, not handoff.
|
|
18
|
+
|
|
19
|
+
## How this differs from a task `handoff.md` (read first)
|
|
20
|
+
|
|
21
|
+
| | This command (session handoff) | Task `handoff.md` |
|
|
22
|
+
| --- | --- | --- |
|
|
23
|
+
| What | Portable cross-session summary | Child-task integration / implementation-window **delivery evidence** |
|
|
24
|
+
| Where | OS temp directory (volatile) | `.cstl/tasks/<task>/` (durable, archived with the task) |
|
|
25
|
+
| Lifecycle | Single transfer; dead once the work lands | Kept with the task evidence for Parent / review traces |
|
|
26
|
+
|
|
27
|
+
A task directory's `handoff.md` is the evidence file for `integrate-child` / `review-child`, **not** a session handoff document; the temp file this command produces is **not** task evidence.
|
|
28
|
+
|
|
29
|
+
## Steps
|
|
30
|
+
|
|
31
|
+
1. **Read the user argument**: the "next-session purpose" passed on invocation decides which whys to keep (trim key decision rationale by purpose — do not take everything verbatim).
|
|
32
|
+
2. **Write the temp file** (path rules below).
|
|
33
|
+
3. **Report the full absolute path** (required): temp paths are long and differ per OS; the user must get the path first.
|
|
34
|
+
4. **Remind about volatility**: the temp file may be cleaned by the environment (Codex clears temp across sessions; `/private/tmp` is lost on reboot). For cross-hour / cross-harness continuation, ask the user to copy it to a durable location immediately.
|
|
35
|
+
|
|
36
|
+
### Path rules
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
$env:TEMP\cstl-handoff-{yyyyMMdd-HHmmss}-{slug}.md
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- Windows: `$env:TEMP` (i.e. `%TEMP%`)
|
|
43
|
+
- Linux / macOS: `$TMPDIR/cstl-handoff-{yyyyMMdd-HHmmss}-{slug}.md` (`/tmp` when `$TMPDIR` is unset)
|
|
44
|
+
- Always report the **full absolute path** to the user after writing — never just the filename.
|
|
45
|
+
|
|
46
|
+
## Content template (English skeleton)
|
|
47
|
+
|
|
48
|
+
> Follow `artifact_locale` when the project uses it; English by default.
|
|
49
|
+
|
|
50
|
+
```markdown
|
|
51
|
+
# Session handoff — <work summary>
|
|
52
|
+
|
|
53
|
+
> Generated by cstl-handoff at <time> · Next-session purpose: <user argument>
|
|
54
|
+
|
|
55
|
+
## Goal
|
|
56
|
+
<what the in-flight work is trying to achieve>
|
|
57
|
+
|
|
58
|
+
## Done
|
|
59
|
+
- <items>
|
|
60
|
+
|
|
61
|
+
## Not done / Blocked
|
|
62
|
+
- <items>
|
|
63
|
+
|
|
64
|
+
## Next steps
|
|
65
|
+
1. <ordered steps>
|
|
66
|
+
|
|
67
|
+
## Key whys (trimmed by next-session purpose)
|
|
68
|
+
- <decision + reason; whys unrelated to this purpose can be omitted>
|
|
69
|
+
|
|
70
|
+
## Facts vs unverified beliefs
|
|
71
|
+
- Facts: <verified>
|
|
72
|
+
- Beliefs (unverified): <assumptions — never write them as facts>
|
|
73
|
+
|
|
74
|
+
## Pointers (reference paths only, never copy bodies)
|
|
75
|
+
- Task: `.cstl/tasks/<task>/` (prd.md / design.md / implement.md / verify.md)
|
|
76
|
+
- Context: `CONTEXT.md` · Research: `<task>/research/`
|
|
77
|
+
- Prototype evidence (if a prototype was involved): `<task>/research/prototype-<slug>.py` (see `.cstl/spec/guides/prototype-guide.md` §9)
|
|
78
|
+
- Other: ADR / issue / commit / diff paths or URLs
|
|
79
|
+
|
|
80
|
+
## Suggested skills (for the continuing agent)
|
|
81
|
+
- <skill name list, e.g. cstl-brainstorm, cstl-check, cstl-continue>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Rules
|
|
85
|
+
|
|
86
|
+
- **Reference, don't copy**: anything already on disk (spec / PRD / ADR / issue / commit / diff) gets a path or URL only, never pasted verbatim.
|
|
87
|
+
- **Redact**: API keys, tokens, passwords, PII → replace with `<REDACTED>` before writing; when unsure, write `<REDACTED>`.
|
|
88
|
+
- **Facts vs beliefs**: unverified assumptions must be marked, never written as verified facts — the continuing agent will treat the document as a contract and will not re-check.
|
|
89
|
+
- **Prototype evidence pointer**: when the session involved a prototype, list the prototype evidence path in the pointers section and confirm the evidence is captured before cleanup.
|
|
90
|
+
- **Delivery**: have the new agent **read the file path**; do not stuff the summary into shell quotes to launch the new agent (backticks / `$(...)` get swallowed and silently truncated).
|
|
91
|
+
|
|
92
|
+
## Anti-patterns
|
|
93
|
+
|
|
94
|
+
- ❌ Treating handoff as a long-lived document: it is a transit document for a single transfer and dies once the work lands (long-term facts belong in `AGENTS.md` / spec, not handoff)
|
|
95
|
+
- ❌ Pasting large spec / PRD / diff bodies (should reference paths only)
|
|
96
|
+
- ❌ Stuffing the summary into shell quotes to launch the next agent (silent truncation risk)
|
|
97
|
+
- ❌ Not reporting the full path / not reminding about temp volatility
|
|
98
|
+
- ❌ Writing a handoff for same-harness same-directory continuation (should compact / continue)
|
|
99
|
+
- ❌ Writing keys / tokens into the document
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# CONTEXT
|
|
2
|
+
|
|
3
|
+
Project domain glossary — the single source of truth for project-specific terms used in this repository. Read **on demand** when project terms matter (e.g. before planning questions, PRD writing, or check reviews); **never always-inject** — this file stays out of the automatic session prompt budget.
|
|
4
|
+
|
|
5
|
+
Only project-specific concepts belong here; generic programming concepts and framework terms already documented under `.cstl/` do not need entries. Each entry: term + one-line definition + `_Avoid_` aliases when a common synonym causes confusion. Language follows `artifact_locale` (en → English only; zh → Chinese terms with English gloss).
|
|
6
|
+
|
|
7
|
+
## Framework domain seed (optional)
|
|
8
|
+
|
|
9
|
+
Optional starting set — delete entries that do not apply to this project:
|
|
10
|
+
|
|
11
|
+
**Task** (_task_):
|
|
12
|
+
CSTL task, directory under `.cstl/tasks/`, lifecycle planning / in_progress / completed.
|
|
13
|
+
_Avoid_: ticket, issue
|
|
14
|
+
|
|
15
|
+
**PRD** (_product requirements document_):
|
|
16
|
+
Task requirements artifact: Goal / User Stories / Requirements / Acceptance Criteria / Implementation Decisions.
|
|
17
|
+
_Avoid_: spec sheet
|
|
18
|
+
|
|
19
|
+
**Gate** (_gate_):
|
|
20
|
+
Mandatory checkpoint at planning / execution / archive boundaries.
|
|
21
|
+
_Avoid_: —
|
|
22
|
+
|
|
23
|
+
**Evidence** (_evidence_):
|
|
24
|
+
Verification evidence in `verify.md` (command output, paths, acceptance).
|
|
25
|
+
_Avoid_: report
|
|
26
|
+
|
|
27
|
+
**Contract** (_contract_):
|
|
28
|
+
Execution contract in `implement.md` (execution_mode / verification_profile / quality_gates).
|
|
29
|
+
_Avoid_: plan
|
|
30
|
+
|
|
31
|
+
**Child** (_child_):
|
|
32
|
+
Independently verifiable deliverable under a Parent task tree.
|
|
33
|
+
_Avoid_: sub-ticket
|
|
34
|
+
|
|
35
|
+
**artifact_locale** (_artifact locale_):
|
|
36
|
+
Project artifact language setting (en / zh).
|
|
37
|
+
_Avoid_: locale
|
|
38
|
+
|
|
39
|
+
**Task Ladder** (_task ladder_):
|
|
40
|
+
Triage ladder: No Task / Micro-Grill / Lite / Full / Parent.
|
|
41
|
+
_Avoid_: —
|
|
42
|
+
|
|
43
|
+
## Project glossary
|
|
44
|
+
|
|
45
|
+
Add project-specific terms below (term + one-line definition + `_Avoid_` aliases):
|
|
46
|
+
|
|
47
|
+
| Term | Definition | Avoid |
|
|
48
|
+
| --- | --- | --- |
|
|
49
|
+
| _TBD_ | | |
|
|
50
|
+
|
|
51
|
+
## ADR
|
|
52
|
+
|
|
53
|
+
Architecture decisions live in `docs/adr/` (lazy-created). Write an ADR only when **all three** conditions hold: hard to reverse · would surprise without context · real tradeoff. See `docs/adr/README.md` for the full boundary.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# ADR — Architecture Decision Records
|
|
2
|
+
|
|
3
|
+
`docs/adr/` records architecture decisions. **Lazy-created**: the directory and `0001-*.md` files appear only when a real decision needs recording — do not pre-create them.
|
|
4
|
+
|
|
5
|
+
## When to write an ADR (all three conditions)
|
|
6
|
+
|
|
7
|
+
Write an ADR only when **all three** hold:
|
|
8
|
+
|
|
9
|
+
1. **Hard to reverse** — the decision is difficult or expensive to undo.
|
|
10
|
+
2. **Would surprise without context** — a future reader would ask "why is it this way?" without background.
|
|
11
|
+
3. **Real tradeoff** — there was a genuine choice between viable alternatives.
|
|
12
|
+
|
|
13
|
+
A single paragraph is enough. Number sequentially: `0001-<slug>.md`, `0002-<slug>.md`, …
|
|
14
|
+
|
|
15
|
+
## Three-layer boundary
|
|
16
|
+
|
|
17
|
+
| Layer | Owns |
|
|
18
|
+
| --- | --- |
|
|
19
|
+
| Knowledge base (rejections) | Rejection reasons / why-not |
|
|
20
|
+
| `docs/adr/` | Decision records / why-chosen |
|
|
21
|
+
| `.cstl/spec/` | Coding guidelines / conventions |
|
|
@@ -88,6 +88,8 @@ export declare const codegraphSessionSmokeScript: string;
|
|
|
88
88
|
export declare const workflowMdTemplate: string;
|
|
89
89
|
export declare const configYamlTemplate: string;
|
|
90
90
|
export declare const gitignoreTemplate: string;
|
|
91
|
+
export declare const contextMdTemplate: string;
|
|
92
|
+
export declare const adrReadmeTemplate: string;
|
|
91
93
|
export declare const poolReadmeTemplate: string;
|
|
92
94
|
export declare const poolPlanTemplate: string;
|
|
93
95
|
export declare const poolItemsGitkeepTemplate: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -100,6 +100,9 @@ export const codegraphSessionSmokeScript = readTemplate("scripts/codegraph_sessi
|
|
|
100
100
|
export const workflowMdTemplate = readTemplate("workflow.md");
|
|
101
101
|
export const configYamlTemplate = readTemplate("config.yaml");
|
|
102
102
|
export const gitignoreTemplate = readTemplate("gitignore.txt");
|
|
103
|
+
// Project domain glossary stub + ADR rules (lazy-created docs/adr/)
|
|
104
|
+
export const contextMdTemplate = readTemplate("CONTEXT.md");
|
|
105
|
+
export const adrReadmeTemplate = readTemplate("docs/adr/README.md");
|
|
103
106
|
// Review-pool skeleton (mechanism only — no user items)
|
|
104
107
|
export const poolReadmeTemplate = readTemplate("pool/README.md");
|
|
105
108
|
export const poolPlanTemplate = readTemplate("pool/plan.md");
|