@blxzer/cursor-trellis 0.3.0 → 0.3.3
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 +45 -0
- package/README.md +51 -10
- package/README.zh-CN.md +21 -7
- package/bin/cstl.js +1 -1
- package/bin/smart-search.js +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +17 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/capability-smoke.js +2 -2
- package/dist/commands/capability-smoke.js.map +1 -1
- package/dist/commands/channel/agent-loader.d.ts +1 -1
- package/dist/commands/channel/agent-loader.js +4 -4
- package/dist/commands/channel/agent-loader.js.map +1 -1
- package/dist/commands/channel/guard.d.ts +2 -2
- package/dist/commands/channel/guard.js +3 -3
- package/dist/commands/channel/guard.js.map +1 -1
- package/dist/commands/channel/index.js +3 -3
- package/dist/commands/channel/index.js.map +1 -1
- package/dist/commands/channel/list.d.ts +1 -1
- package/dist/commands/channel/list.js +1 -1
- package/dist/commands/channel/rm.d.ts +1 -1
- package/dist/commands/channel/rm.js +1 -1
- package/dist/commands/channel/store/lock.d.ts +1 -1
- package/dist/commands/channel/store/lock.js +1 -1
- package/dist/commands/channel/store/paths.js +1 -1
- package/dist/commands/channel/store/paths.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +105 -59
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/uninstall.d.ts +3 -3
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +69 -15
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +6 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +83 -28
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/workflow.d.ts +4 -4
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +10 -9
- package/dist/commands/workflow.js.map +1 -1
- package/dist/configurators/index.d.ts.map +1 -1
- package/dist/configurators/index.js +1 -1
- package/dist/configurators/index.js.map +1 -1
- package/dist/configurators/shared.js +6 -6
- package/dist/configurators/shared.js.map +1 -1
- package/dist/configurators/workflow.d.ts +4 -4
- package/dist/configurators/workflow.js +1 -1
- package/dist/constants/paths.d.ts +24 -24
- package/dist/constants/paths.d.ts.map +1 -1
- package/dist/constants/paths.js +16 -16
- package/dist/constants/paths.js.map +1 -1
- package/dist/migrations/manifests/0.3.1.json +32 -0
- package/dist/templates/common/bundled-skills/cstl-cursor2plus-setup/SKILL.md +11 -11
- package/dist/templates/common/bundled-skills/cstl-meta/SKILL.md +15 -15
- package/dist/templates/common/bundled-skills/cstl-meta/references/customize-local/add-project-local-conventions.md +12 -12
- package/dist/templates/common/bundled-skills/cstl-meta/references/customize-local/change-agents.md +2 -2
- package/dist/templates/common/bundled-skills/cstl-meta/references/customize-local/change-context-loading.md +21 -21
- package/dist/templates/common/bundled-skills/cstl-meta/references/customize-local/change-hooks.md +9 -9
- package/dist/templates/common/bundled-skills/cstl-meta/references/customize-local/change-skills-or-commands.md +7 -7
- package/dist/templates/common/bundled-skills/cstl-meta/references/customize-local/change-spec-structure.md +15 -15
- package/dist/templates/common/bundled-skills/cstl-meta/references/customize-local/change-task-lifecycle.md +27 -27
- package/dist/templates/common/bundled-skills/cstl-meta/references/customize-local/change-workflow.md +7 -7
- package/dist/templates/common/bundled-skills/cstl-meta/references/customize-local/overview.md +11 -11
- package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/context-injection.md +12 -12
- package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/generated-files.md +21 -21
- package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/overview.md +14 -14
- package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/spec-system.md +12 -12
- package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/task-system.md +23 -23
- package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/workflow.md +3 -3
- package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/workspace-memory.md +16 -16
- package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/agents.md +2 -2
- package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/hooks-and-settings.md +6 -6
- package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/overview.md +5 -5
- package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/platform-map.md +3 -3
- package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/skills-and-commands.md +5 -5
- package/dist/templates/common/bundled-skills/cstl-skill-creator/SKILL.md +2 -2
- package/dist/templates/common/bundled-skills/cstl-skill-creator/references/review-checklist.md +1 -1
- package/dist/templates/common/bundled-skills/cstl-spec-bootstrap/SKILL.md +5 -5
- package/dist/templates/common/bundled-skills/cstl-spec-bootstrap/references/repository-analysis.md +1 -1
- package/dist/templates/common/bundled-skills/cstl-spec-bootstrap/references/spec-task-planning.md +3 -3
- package/dist/templates/common/bundled-skills/cstl-spec-bootstrap/references/spec-writing.md +1 -1
- package/dist/templates/common/commands/continue.md +6 -6
- package/dist/templates/common/commands/finish-work.md +5 -5
- package/dist/templates/common/commands/start.md +8 -8
- package/dist/templates/common/skills/before-dev.md +4 -4
- package/dist/templates/common/skills/brainstorm.md +5 -5
- package/dist/templates/common/skills/break-loop.md +3 -3
- package/dist/templates/common/skills/check.md +5 -5
- package/dist/templates/common/skills/update-spec.md +4 -4
- package/dist/templates/cursor/agents/cstl-check.md +6 -6
- package/dist/templates/cursor/agents/cstl-implement.md +7 -7
- package/dist/templates/cursor/agents/cstl-research.md +9 -9
- package/dist/templates/cursor/commands/cursor2plus-setup.md +10 -10
- package/dist/templates/cursor/rules/cstl-subagent-dispatch.mdc +2 -2
- package/dist/templates/cursor/rules/cstl-triage.mdc +2 -2
- package/dist/templates/cursor/rules/retrieval-routing.mdc +4 -4
- package/dist/templates/extract.d.ts +1 -1
- package/dist/templates/extract.js +1 -1
- package/dist/templates/markdown/agents.md +11 -11
- package/dist/templates/markdown/prompts/run-semantic-slice-12.md.txt +1 -1
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +5 -5
- package/dist/templates/markdown/spec/guides/cursor-context-injection-guide.md.txt +3 -3
- package/dist/templates/markdown/spec/guides/cursor-semantic-compliance.md.txt +1 -1
- package/dist/templates/markdown/spec/guides/cursor-subagent-policy.md.txt +11 -11
- package/dist/templates/markdown/spec/guides/cursor-trellis-release-coexistence-guide.md.txt +166 -0
- package/dist/templates/markdown/spec/guides/durable-learning-decision-guide.md.txt +8 -8
- package/dist/templates/markdown/spec/guides/execution-strategy.md.txt +3 -3
- package/dist/templates/markdown/spec/guides/index.md.txt +1 -0
- package/dist/templates/markdown/spec/guides/retrieval-daily-guide.md.txt +10 -10
- package/dist/templates/markdown/workspace-index.md +3 -3
- package/dist/templates/markdown/worktree.yaml.txt +1 -1
- package/dist/templates/shared-hooks/index.d.ts +1 -1
- package/dist/templates/shared-hooks/index.js +1 -1
- package/dist/templates/shared-hooks/inject-retrieval-plan.py +3 -3
- package/dist/templates/shared-hooks/inject-shell-session-context.py +7 -7
- package/dist/templates/shared-hooks/inject-subagent-context.py +1 -1
- package/dist/templates/shared-hooks/inject-workflow-state.py +11 -11
- package/dist/templates/shared-hooks/research-end-retrieval-pack.py +1 -1
- package/dist/templates/shared-hooks/session-start.py +13 -13
- package/dist/templates/trellis/config.yaml +2 -22
- package/dist/templates/trellis/index.d.ts +2 -2
- package/dist/templates/trellis/index.js +2 -2
- package/dist/templates/trellis/local/README.md +3 -3
- package/dist/templates/trellis/local/patch_wpelc8.py +4 -4
- package/dist/templates/trellis/scripts/add_session.py +20 -20
- package/dist/templates/trellis/scripts/common/active_task.py +2 -2
- package/dist/templates/trellis/scripts/common/artifact_search.py +587 -587
- package/dist/templates/trellis/scripts/common/codebase_retrieval_router.py +6 -6
- package/dist/templates/trellis/scripts/common/config.py +3 -3
- package/dist/templates/trellis/scripts/common/developer.py +2 -2
- package/dist/templates/trellis/scripts/common/packages_context.py +23 -23
- package/dist/templates/trellis/scripts/common/parent_orchestration.py +16 -16
- package/dist/templates/trellis/scripts/common/paths.py +107 -107
- package/dist/templates/trellis/scripts/common/project_file_stats.py +1 -1
- package/dist/templates/trellis/scripts/common/retrieval_agent_instructions.py +1 -1
- package/dist/templates/trellis/scripts/common/safe_commit.py +31 -31
- package/dist/templates/trellis/scripts/common/session_memory.py +360 -360
- package/dist/templates/trellis/scripts/common/smart_search_evidence.py +514 -514
- package/dist/templates/trellis/scripts/common/smart_search_resolve.py +1 -1
- package/dist/templates/trellis/scripts/common/subagent_dispatch.py +2 -2
- package/dist/templates/trellis/scripts/common/task_context.py +1 -1
- package/dist/templates/trellis/scripts/common/task_dashboard.py +140 -140
- package/dist/templates/trellis/scripts/common/task_gates.py +23 -23
- package/dist/templates/trellis/scripts/common/task_store.py +5 -5
- package/dist/templates/trellis/scripts/common/task_utils.py +3 -3
- package/dist/templates/trellis/scripts/common/tasks.py +1 -1
- package/dist/templates/trellis/scripts/common/trellis_config.py +3 -3
- package/dist/templates/trellis/scripts/common/workflow_phase.py +1 -1
- package/dist/templates/trellis/scripts/cursor_retrieval_probe.py +3 -3
- package/dist/templates/trellis/scripts/cursor_retrieval_probe_prompt.md +11 -11
- package/dist/templates/trellis/scripts/hooks/linear_sync.py +8 -8
- package/dist/templates/trellis/scripts/init_developer.py +2 -2
- package/dist/templates/trellis/scripts/retrieval_probe_matrix_template.json +4 -4
- package/dist/templates/trellis/scripts/route_codebase_retrieval.py +1 -1
- package/dist/templates/trellis/scripts/task.py +918 -918
- package/dist/templates/trellis/tasks/templates/release-readiness/implement.md +2 -2
- package/dist/templates/trellis/workflow.md +64 -64
- package/dist/types/migration.d.ts +1 -1
- package/dist/types/migration.d.ts.map +1 -1
- package/dist/utils/agents-md.d.ts +47 -0
- package/dist/utils/agents-md.d.ts.map +1 -0
- package/dist/utils/agents-md.js +107 -0
- package/dist/utils/agents-md.js.map +1 -0
- package/dist/utils/codebase-retrieval-router.js +5 -5
- package/dist/utils/codebase-retrieval-router.js.map +1 -1
- package/dist/utils/manifest-prune.d.ts +2 -2
- package/dist/utils/manifest-prune.js +4 -4
- package/dist/utils/manifest-prune.js.map +1 -1
- package/dist/utils/mirror-check.d.ts +3 -1
- package/dist/utils/mirror-check.d.ts.map +1 -1
- package/dist/utils/mirror-check.js +22 -11
- package/dist/utils/mirror-check.js.map +1 -1
- package/dist/utils/project-capabilities.js +5 -5
- package/dist/utils/project-capabilities.js.map +1 -1
- package/dist/utils/retrieval-agent-instructions.js +1 -1
- package/dist/utils/retrieval-agent-instructions.js.map +1 -1
- package/dist/utils/retrieval-execution-telemetry.js +1 -1
- package/dist/utils/retrieval-execution-telemetry.js.map +1 -1
- package/dist/utils/template-fetcher.js +1 -1
- package/dist/utils/template-fetcher.js.map +1 -1
- package/dist/utils/template-hash.d.ts +2 -2
- package/dist/utils/template-hash.d.ts.map +1 -1
- package/dist/utils/template-hash.js +51 -18
- package/dist/utils/template-hash.js.map +1 -1
- package/dist/utils/workflow-dir.d.ts +13 -0
- package/dist/utils/workflow-dir.d.ts.map +1 -0
- package/dist/utils/workflow-dir.js +35 -0
- package/dist/utils/workflow-dir.js.map +1 -0
- package/dist/utils/workflow-ownership.d.ts +36 -0
- package/dist/utils/workflow-ownership.d.ts.map +1 -0
- package/dist/utils/workflow-ownership.js +137 -0
- package/dist/utils/workflow-ownership.js.map +1 -0
- package/dist/utils/workflow-resolver.d.ts +1 -1
- package/dist/utils/workflow-resolver.js +1 -1
- package/package.json +2 -2
package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/spec-system.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Local Spec System
|
|
2
2
|
|
|
3
|
-
`.
|
|
3
|
+
`.cstl/spec/` is the user's project-specific engineering spec library. Trellis is not about making AI memorize conventions; it injects relevant specs or requires the AI to read them at the right time.
|
|
4
4
|
|
|
5
5
|
## Directory Model
|
|
6
6
|
|
|
7
7
|
A common single-repository structure:
|
|
8
8
|
|
|
9
9
|
```text
|
|
10
|
-
.
|
|
10
|
+
.cstl/spec/
|
|
11
11
|
├── backend/
|
|
12
12
|
│ ├── index.md
|
|
13
13
|
│ └── ...
|
|
@@ -22,7 +22,7 @@ A common single-repository structure:
|
|
|
22
22
|
A common monorepo structure:
|
|
23
23
|
|
|
24
24
|
```text
|
|
25
|
-
.
|
|
25
|
+
.cstl/spec/
|
|
26
26
|
├── cli/
|
|
27
27
|
│ ├── backend/
|
|
28
28
|
│ │ ├── index.md
|
|
@@ -43,7 +43,7 @@ A common monorepo structure:
|
|
|
43
43
|
|
|
44
44
|
## Package Configuration
|
|
45
45
|
|
|
46
|
-
`.
|
|
46
|
+
`.cstl/config.yaml` can declare packages:
|
|
47
47
|
|
|
48
48
|
```yaml
|
|
49
49
|
packages:
|
|
@@ -58,7 +58,7 @@ default_package: cli
|
|
|
58
58
|
The AI can run:
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
python3 ./.
|
|
61
|
+
python3 ./.cstl/scripts/get_context.py --mode packages
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
This command lists packages and spec layers for the current project. Use this output as the reference when configuring context JSONL.
|
|
@@ -68,8 +68,8 @@ This command lists packages and spec layers for the current project. Use this ou
|
|
|
68
68
|
Before a task enters implementation, planning may write relevant specs into `implement.jsonl` / `check.jsonl` when the task needs spec or research context beyond the task artifacts:
|
|
69
69
|
|
|
70
70
|
```jsonl
|
|
71
|
-
{"file": ".
|
|
72
|
-
{"file": ".
|
|
71
|
+
{"file": ".cstl/spec/cli/backend/index.md", "reason": "CLI backend conventions"}
|
|
72
|
+
{"file": ".cstl/spec/cli/unit-test/conventions.md", "reason": "Test expectations"}
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
Sub-agents or platform preludes read these JSONL files and load the referenced specs. On platforms without sub-agent support, the AI should read the relevant specs directly according to the workflow.
|
|
@@ -85,18 +85,18 @@ Specs should contain executable engineering conventions for the project, not gen
|
|
|
85
85
|
- Cases that require tests.
|
|
86
86
|
- Project-specific pitfalls and how to avoid them.
|
|
87
87
|
|
|
88
|
-
When the AI learns a new rule during implementation or debugging, it should update `.
|
|
88
|
+
When the AI learns a new rule during implementation or debugging, it should update `.cstl/spec/` rather than only summarizing it in chat.
|
|
89
89
|
|
|
90
90
|
## Local Customization Points
|
|
91
91
|
|
|
92
92
|
| Need | Edit location |
|
|
93
93
|
| --- | --- |
|
|
94
|
-
| Add a new spec layer | `.
|
|
95
|
-
| Change monorepo spec mapping | `packages` / `default_package` / `spec_scope` in `.
|
|
94
|
+
| Add a new spec layer | `.cstl/spec/<package>/<layer>/index.md` and corresponding guideline files. |
|
|
95
|
+
| Change monorepo spec mapping | `packages` / `default_package` / `spec_scope` in `.cstl/config.yaml`. |
|
|
96
96
|
| Change which specs AI reads before implementation | The task's `implement.jsonl`. |
|
|
97
97
|
| Change which specs AI reads during checking | The task's `check.jsonl`. |
|
|
98
|
-
| Change when specs should be updated | Phase 3.3 in `.
|
|
98
|
+
| Change when specs should be updated | Phase 3.3 in `.cstl/workflow.md` and the `cstl-update-spec` skill. |
|
|
99
99
|
|
|
100
100
|
## Boundaries
|
|
101
101
|
|
|
102
|
-
`.
|
|
102
|
+
`.cstl/spec/` is the user's project specification, not a permanent copy of Trellis built-in templates. The AI should encourage the user to update it according to the actual project code instead of treating Trellis default templates as immutable documents.
|
package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/task-system.md
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Local Task System
|
|
2
2
|
|
|
3
|
-
The Trellis task system is stored entirely under `.
|
|
3
|
+
The Trellis task system is stored entirely under `.cstl/tasks/` in the user project. Each task is a directory containing requirements, context, research, state, and relationship information.
|
|
4
4
|
|
|
5
5
|
## Task Directory Structure
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
|
-
.
|
|
8
|
+
.cstl/tasks/
|
|
9
9
|
├── 04-28-example-task/
|
|
10
10
|
│ ├── task.json
|
|
11
11
|
│ ├── prd.md
|
|
@@ -59,14 +59,14 @@ Use child tasks for deliverables that can move through planning, implementation,
|
|
|
59
59
|
Create new children with:
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
python3 ./.
|
|
62
|
+
python3 ./.cstl/scripts/task.py create "<child title>" --slug <child-slug> --parent <parent-dir>
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
Link or unlink existing tasks with:
|
|
66
66
|
|
|
67
67
|
```bash
|
|
68
|
-
python3 ./.
|
|
69
|
-
python3 ./.
|
|
68
|
+
python3 ./.cstl/scripts/task.py add-subtask <parent-dir> <child-dir>
|
|
69
|
+
python3 ./.cstl/scripts/task.py remove-subtask <parent-dir> <child-dir>
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
`children` on the parent is a historical list. When a child is archived, Trellis keeps that child name in the parent so progress like `[2/3 done]` remains meaningful after completed children move to `archive/`.
|
|
@@ -78,7 +78,7 @@ The AI should not treat phase numbers as task status. Task progress is mainly de
|
|
|
78
78
|
The user sees a "selected task," and Trellis stores that selection per live session.
|
|
79
79
|
|
|
80
80
|
```text
|
|
81
|
-
.
|
|
81
|
+
.cstl/.runtime/sessions/<context-key>.json
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
`task.py select <task>` writes the task path into the runtime session file for the current session. `task.py selected --source` shows the selected task and where it came from. Different AI windows can point to different tasks without overwriting each other.
|
|
@@ -92,8 +92,8 @@ If the platform or shell environment has no stable session identity, `task.py se
|
|
|
92
92
|
Format:
|
|
93
93
|
|
|
94
94
|
```jsonl
|
|
95
|
-
{"file": ".
|
|
96
|
-
{"file": ".
|
|
95
|
+
{"file": ".cstl/spec/cli/backend/index.md", "reason": "Backend conventions"}
|
|
96
|
+
{"file": ".cstl/tasks/04-28-example/research/api.md", "reason": "API research"}
|
|
97
97
|
```
|
|
98
98
|
|
|
99
99
|
Rules:
|
|
@@ -106,16 +106,16 @@ Rules:
|
|
|
106
106
|
## Common Commands
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
|
-
python3 ./.
|
|
110
|
-
python3 ./.
|
|
111
|
-
python3 ./.
|
|
112
|
-
python3 ./.
|
|
113
|
-
python3 ./.
|
|
114
|
-
python3 ./.
|
|
115
|
-
python3 ./.
|
|
116
|
-
python3 ./.
|
|
117
|
-
python3 ./.
|
|
118
|
-
python3 ./.
|
|
109
|
+
python3 ./.cstl/scripts/task.py create "<title>" --slug <slug>
|
|
110
|
+
python3 ./.cstl/scripts/task.py dashboard
|
|
111
|
+
python3 ./.cstl/scripts/task.py select <task>
|
|
112
|
+
python3 ./.cstl/scripts/task.py selected --source
|
|
113
|
+
python3 ./.cstl/scripts/task.py start-execution <task> --check
|
|
114
|
+
python3 ./.cstl/scripts/task.py start-execution <task> --approved
|
|
115
|
+
python3 ./.cstl/scripts/task.py add-context <task> implement <file> <reason>
|
|
116
|
+
python3 ./.cstl/scripts/task.py validate <task>
|
|
117
|
+
python3 ./.cstl/scripts/task.py exit
|
|
118
|
+
python3 ./.cstl/scripts/task.py archive <task>
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
When modifying the task system, the AI should prefer script commands to maintain structure. Edit JSON/Markdown directly only when scripts do not cover the need.
|
|
@@ -124,10 +124,10 @@ When modifying the task system, the AI should prefer script commands to maintain
|
|
|
124
124
|
|
|
125
125
|
| Need | Edit location |
|
|
126
126
|
| --- | --- |
|
|
127
|
-
| Change the default task template | `.
|
|
128
|
-
| Change status semantics | `.
|
|
129
|
-
| Add task lifecycle actions | `hooks.after_*` in `.
|
|
130
|
-
| Change context rules | Planning artifact guidance in `.
|
|
131
|
-
| Change archive policy | `.
|
|
127
|
+
| Change the default task template | `.cstl/scripts/common/task_store.py` and task creation instructions. |
|
|
128
|
+
| Change status semantics | `.cstl/workflow.md`, workflow-state hook logic, and task usage conventions. |
|
|
129
|
+
| Add task lifecycle actions | `hooks.after_*` in `.cstl/config.yaml`. |
|
|
130
|
+
| Change context rules | Planning artifact guidance in `.cstl/workflow.md` and related platform agent/hook instructions. |
|
|
131
|
+
| Change archive policy | `.cstl/scripts/common/task_store.py` / `task_utils.py`. |
|
|
132
132
|
|
|
133
133
|
These are local files in the user project. Do not default to editing Trellis CLI source code unless the user wants to contribute upstream.
|
package/dist/templates/common/bundled-skills/cstl-meta/references/local-architecture/workflow.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Local Workflow System
|
|
2
2
|
|
|
3
|
-
`.
|
|
3
|
+
`.cstl/workflow.md` is the Trellis workflow source of truth inside the user project. An AI does not need Trellis source code to understand how the current project should move tasks forward; this file is enough.
|
|
4
4
|
|
|
5
5
|
## File Responsibilities
|
|
6
6
|
|
|
7
|
-
`.
|
|
7
|
+
`.cstl/workflow.md` has three responsibilities:
|
|
8
8
|
|
|
9
9
|
1. **Explain workflow phases**: Plan, Execute, Finish.
|
|
10
10
|
2. **Define skill routing**: which skill or agent the AI should use when the user expresses a certain intent.
|
|
@@ -62,7 +62,7 @@ Common changes:
|
|
|
62
62
|
| Change the wrap-up flow | Update Phase 3 and `finish-work` related descriptions. Note the current split: Phase 3.4 = AI-driven code commits (batched, user-confirmed), Phase 3.5 = `/finish-work` (archive + record session). `/finish-work` refuses to run if the working tree is dirty. |
|
|
63
63
|
| Change platform differences | Update routing descriptions grouped by platform. |
|
|
64
64
|
|
|
65
|
-
After editing, make the AI reread `.
|
|
65
|
+
After editing, make the AI reread `.cstl/workflow.md`; do not assume the flow from the old conversation is still valid.
|
|
66
66
|
|
|
67
67
|
## Relationship To Platform Files
|
|
68
68
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# Local Workspace Memory System
|
|
2
2
|
|
|
3
|
-
`.
|
|
3
|
+
`.cstl/workspace/` stores cross-session memory. Its purpose is to let AI and humans understand what happened before across different windows and different days.
|
|
4
4
|
|
|
5
5
|
## Directory Structure
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
|
-
.
|
|
8
|
+
.cstl/workspace/
|
|
9
9
|
├── index.md
|
|
10
10
|
└── <developer>/
|
|
11
11
|
├── index.md
|
|
@@ -15,20 +15,20 @@
|
|
|
15
15
|
|
|
16
16
|
| File | Purpose |
|
|
17
17
|
| --- | --- |
|
|
18
|
-
| `.
|
|
19
|
-
| `.
|
|
20
|
-
| `.
|
|
21
|
-
| `.
|
|
18
|
+
| `.cstl/.developer` | Current developer identity. |
|
|
19
|
+
| `.cstl/workspace/index.md` | Global workspace overview. |
|
|
20
|
+
| `.cstl/workspace/<developer>/index.md` | Session index for a developer. |
|
|
21
|
+
| `.cstl/workspace/<developer>/journal-N.md` | Session journal. |
|
|
22
22
|
|
|
23
23
|
## Developer Identity
|
|
24
24
|
|
|
25
25
|
Run this the first time:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
python3 ./.
|
|
28
|
+
python3 ./.cstl/scripts/init_developer.py <name>
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
This creates `.
|
|
31
|
+
This creates `.cstl/.developer` and the corresponding workspace directory. The AI should not change developer identity casually; if the identity is wrong, first confirm who is using the current project.
|
|
32
32
|
|
|
33
33
|
## Journal
|
|
34
34
|
|
|
@@ -37,7 +37,7 @@ This creates `.trellis/.developer` and the corresponding workspace directory. Th
|
|
|
37
37
|
Common command for recording a session:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
python3 ./.
|
|
40
|
+
python3 ./.cstl/scripts/add_session.py \
|
|
41
41
|
--title "Session title" \
|
|
42
42
|
--summary "What changed" \
|
|
43
43
|
--commit "abc1234"
|
|
@@ -49,9 +49,9 @@ Planning or review work without a commit can also be recorded by using `--no-com
|
|
|
49
49
|
|
|
50
50
|
| System | What it stores |
|
|
51
51
|
| --- | --- |
|
|
52
|
-
| `.
|
|
53
|
-
| `.
|
|
54
|
-
| `.
|
|
52
|
+
| `.cstl/tasks/` | Requirements, design, research, and state for a specific task. |
|
|
53
|
+
| `.cstl/workspace/` | Work records across tasks and sessions. |
|
|
54
|
+
| `.cstl/spec/` | Engineering knowledge preserved as long-term conventions. |
|
|
55
55
|
|
|
56
56
|
If information is only useful for the selected task, put it in the task directory.
|
|
57
57
|
If information describes what happened in the current session, put it in the workspace journal.
|
|
@@ -61,10 +61,10 @@ If information should be followed every time code is written in the future, put
|
|
|
61
61
|
|
|
62
62
|
| Need | Edit location |
|
|
63
63
|
| --- | --- |
|
|
64
|
-
| Change maximum journal lines | `max_journal_lines` in `.
|
|
65
|
-
| Change session auto-commit message | `session_commit_message` in `.
|
|
66
|
-
| Change session content format | `.
|
|
67
|
-
| Change how workspace is displayed in context | `.
|
|
64
|
+
| Change maximum journal lines | `max_journal_lines` in `.cstl/config.yaml`. |
|
|
65
|
+
| Change session auto-commit message | `session_commit_message` in `.cstl/config.yaml`. |
|
|
66
|
+
| Change session content format | `.cstl/scripts/add_session.py`. |
|
|
67
|
+
| Change how workspace is displayed in context | `.cstl/scripts/common/session_context.py`. |
|
|
68
68
|
|
|
69
69
|
## AI Usage Rules
|
|
70
70
|
|
|
@@ -38,7 +38,7 @@ The Cursor hook (`inject-subagent-context.py`, registered in `.cursor/hooks.json
|
|
|
38
38
|
|
|
39
39
|
The agent file instructs the agent to read after startup:
|
|
40
40
|
|
|
41
|
-
- `python3 ./.
|
|
41
|
+
- `python3 ./.cstl/scripts/task.py selected --source`
|
|
42
42
|
- `implement.jsonl` or `check.jsonl`
|
|
43
43
|
- spec/research files referenced by JSONL
|
|
44
44
|
- selected task `prd.md`
|
|
@@ -52,7 +52,7 @@ This mode fits cases where the hook cannot reliably rewrite the sub-agent prompt
|
|
|
52
52
|
| User need | Edit location |
|
|
53
53
|
| --- | --- |
|
|
54
54
|
| Implement agent must follow extra restrictions | `.cursor/agents/cstl-implement.md`. |
|
|
55
|
-
| Check agent must run project-specific commands | `.cursor/agents/cstl-check.md`, and `.
|
|
55
|
+
| Check agent must run project-specific commands | `.cursor/agents/cstl-check.md`, and `.cstl/spec/` if needed. |
|
|
56
56
|
| Research agent must output a fixed format | `.cursor/agents/cstl-research.md`. |
|
|
57
57
|
| Agent cannot read task context | Agent prelude in the agent file, or the `inject-subagent-context` hook registration in `.cursor/hooks.json`. |
|
|
58
58
|
| Add a project-specific agent | `.cursor/agents/` + related skill/command entry point that invokes it. |
|
|
@@ -7,7 +7,7 @@ Hooks/settings are the entry layer that connects Cursor to Trellis. They decide
|
|
|
7
7
|
`.cursor/hooks.json` registers:
|
|
8
8
|
|
|
9
9
|
- session-start hook: injects a Trellis overview when a new session starts or context resets (note the Cursor `additional_context` bug #158452 — see `cursor-context-injection-guide.md.txt`).
|
|
10
|
-
- workflow-state hook: parses `[workflow-state:STATUS]` blocks from `.
|
|
10
|
+
- workflow-state hook: parses `[workflow-state:STATUS]` blocks from `.cstl/workflow.md` and emits the body matching the selected task `status` on each user input. Parser-only; the script does not embed fallback content.
|
|
11
11
|
- sub-agent context hook: injects task context when implementation/check/research agents start.
|
|
12
12
|
- shell/session bridge: lets shell commands see the same Trellis session identity.
|
|
13
13
|
|
|
@@ -24,7 +24,7 @@ Whether legacy settings/config files exist in a project depends on which histori
|
|
|
24
24
|
| Script | Purpose |
|
|
25
25
|
| --- | --- |
|
|
26
26
|
| `session-start.py` | Generates session-start context. |
|
|
27
|
-
| `inject-workflow-state.py` | Parses `[workflow-state:STATUS]` blocks in `.
|
|
27
|
+
| `inject-workflow-state.py` | Parses `[workflow-state:STATUS]` blocks in `.cstl/workflow.md` and emits the body matching the selected task status. Falls back to `Refer to workflow.md for current step.` when no matching block exists. |
|
|
28
28
|
| `inject-subagent-context.py` | Injects PRD, JSONL context, and related spec/research into sub-agents. |
|
|
29
29
|
| `inject-shell-session-context.py` | Lets shell commands inherit Trellis session identity. |
|
|
30
30
|
|
|
@@ -35,7 +35,7 @@ Cursor exposes sessionStart, preToolUse on Task/Subagent, beforeShellExecution,
|
|
|
35
35
|
| User need | Edit location |
|
|
36
36
|
| --- | --- |
|
|
37
37
|
| AI should see more/less context in a new session | `.cursor/hooks.json` → `session-start` hook (or `.cursor/rules/*.mdc` for content the model must see every turn — see `cursor-context-injection-guide.md.txt`). |
|
|
38
|
-
| Per-turn hint policy should change | `[workflow-state:STATUS]` block in `.
|
|
38
|
+
| Per-turn hint policy should change | `[workflow-state:STATUS]` block in `.cstl/workflow.md`. The hook parses workflow.md verbatim — no script edit required. |
|
|
39
39
|
| Sub-agent cannot read PRD/spec | `inject-subagent-context.py` hook or agent prelude in `.cursor/agents/*.md`. |
|
|
40
40
|
| `task.py selected` in shell has no selected task | `inject-shell-session-context.py` hook or environment-variable configuration. |
|
|
41
41
|
| Disable an automatic injection | The corresponding hook registration in `.cursor/hooks.json`. |
|
|
@@ -44,7 +44,7 @@ Cursor exposes sessionStart, preToolUse on Task/Subagent, beforeShellExecution,
|
|
|
44
44
|
|
|
45
45
|
1. **Settings wire things up; hooks define behavior**. If only the hook changes, Cursor may never call it. If only settings change, behavior may not change.
|
|
46
46
|
2. **Confirm Cursor event names first**. Cursor's hook event surface has changed between releases; what an older guide calls `UserPromptSubmit` may now be modeled by `beforeSubmitPrompt` instead.
|
|
47
|
-
3. **Hooks read local `.
|
|
47
|
+
3. **Hooks read local `.cstl/`, not upstream source**. `.cstl/scripts/` and `.cstl/workflow.md` in the user project are the default targets.
|
|
48
48
|
4. **Errors must be visible**. Hook failures should tell the user what was not injected instead of silently leaving the AI without context.
|
|
49
49
|
|
|
50
50
|
## Troubleshooting Path
|
|
@@ -53,6 +53,6 @@ If the user says "AI did not read Trellis state":
|
|
|
53
53
|
|
|
54
54
|
1. Check whether `.cursor/hooks.json` registers the hook.
|
|
55
55
|
2. Check whether the hook file exists under `.cursor/hooks/`.
|
|
56
|
-
3. Manually run the `.
|
|
57
|
-
4. Check whether selected task state exists in `.
|
|
56
|
+
3. Manually run the `.cstl/scripts/get_context.py` or `task.py selected --source` command that the hook depends on.
|
|
57
|
+
4. Check whether selected task state exists in `.cstl/.runtime/sessions/`.
|
|
58
58
|
5. Check whether the Cursor shell passes session identity.
|
package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/overview.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Platform Files Overview
|
|
2
2
|
|
|
3
|
-
Trellis connects the same local architecture to **Cursor**. `.
|
|
3
|
+
Trellis connects the same local architecture to **Cursor**. `.cstl/` stores the shared runtime; `.cursor/` stores adapter files that define how Cursor enters Trellis.
|
|
4
4
|
|
|
5
5
|
When a local AI modifies Trellis, it should distinguish two file categories first:
|
|
6
6
|
|
|
7
|
-
- **Shared files**: `.
|
|
7
|
+
- **Shared files**: `.cstl/workflow.md`, `.cstl/tasks/`, `.cstl/spec/`, `.cstl/scripts/`.
|
|
8
8
|
- **Platform files**: `.cursor/` (settings, hooks, agents, skills, commands, rules).
|
|
9
9
|
|
|
10
10
|
Platform files do not store business state. They let Cursor read Trellis state, call Trellis scripts, and load Trellis skills/agents/hooks.
|
|
@@ -36,10 +36,10 @@ To change "when the AI knows what," inspect `.cursor/hooks.json` and `.cursor/ru
|
|
|
36
36
|
|
|
37
37
|
When the user asks to customize behavior:
|
|
38
38
|
|
|
39
|
-
1. Read `.
|
|
39
|
+
1. Read `.cstl/workflow.md` to confirm the shared flow.
|
|
40
40
|
2. Read `.cursor/hooks.json` to see which hooks are registered.
|
|
41
41
|
3. Read the relevant `.cursor/agents/*.md`, `.cursor/skills/*/SKILL.md`, `.cursor/commands/*.md`, and `.cursor/rules/*.mdc`.
|
|
42
42
|
4. Modify the local file closest to the user's need.
|
|
43
|
-
5. If the change affects the shared flow, synchronize `.
|
|
43
|
+
5. If the change affects the shared flow, synchronize `.cstl/workflow.md` or `.cstl/spec/`.
|
|
44
44
|
|
|
45
|
-
Do not modify only platform files and forget the shared workflow. Do not modify only `.
|
|
45
|
+
Do not modify only platform files and forget the shared workflow. Do not modify only `.cstl/workflow.md` and forget that platform entry points may still contain old descriptions.
|
package/dist/templates/common/bundled-skills/cstl-meta/references/platform-files/platform-map.md
CHANGED
|
@@ -22,9 +22,9 @@ Trellis originally supported multiple AI platforms (Claude Code, Codex, OpenCode
|
|
|
22
22
|
|
|
23
23
|
1. User specified a platform other than Cursor: treat as a legacy adapter inspection — preserve existing files but do not extend new behavior there.
|
|
24
24
|
2. User says "all platforms should do this": in Cursor-only world this is equivalent to "modify the Cursor path"; also mirror any dogfooded copy under `.cursor/` in `packages/cli/src/templates/cursor/` if applicable.
|
|
25
|
-
3. User only says "my AI": inspect which directories actually exist in the project; on a fresh `cstl init` only `.cursor/` and `.
|
|
26
|
-
4. User wants project rules: prefer `.
|
|
27
|
-
5. User wants Trellis behavior: edit `.
|
|
25
|
+
3. User only says "my AI": inspect which directories actually exist in the project; on a fresh `cstl init` only `.cursor/` and `.cstl/` are created.
|
|
26
|
+
4. User wants project rules: prefer `.cstl/spec/` or a project-local skill under `.cursor/skills/`.
|
|
27
|
+
5. User wants Trellis behavior: edit `.cstl/workflow.md` plus `.cursor/hooks.json` / `.cursor/agents/` / `.cursor/skills/` / `.cursor/commands/`.
|
|
28
28
|
|
|
29
29
|
## When Paths Differ
|
|
30
30
|
|
|
@@ -22,7 +22,7 @@ Bundled skills are installed as directories and may include nested `agents/`, `e
|
|
|
22
22
|
|
|
23
23
|
`smart-search-cli` is CLI-backed source retrieval. The Trellis package exposes the `smart-search` executable through its runtime wrapper; the skill documents how agents should use that CLI and cite retrieved sources.
|
|
24
24
|
|
|
25
|
-
`cstl-spec-bootstrap` bootstraps project-specific `.
|
|
25
|
+
`cstl-spec-bootstrap` bootstraps project-specific `.cstl/spec/` guidance from the real repository.
|
|
26
26
|
|
|
27
27
|
`cstl-skill-creator` is the authoring and review guide for Trellis-compatible skills. Use it when creating or improving project-local skills under `.cursor/skills/`, the shared `.agents/skills/` directory (industry skill-sharing, kept but not extended by new Trellis behavior), or upstream bundled skills. Keep `cstl-meta` focused on architecture and routing.
|
|
28
28
|
|
|
@@ -76,11 +76,11 @@ References hold longer explanations so the entry file does not contain everythin
|
|
|
76
76
|
Commands, prompts, and workflows are usually single files. Their content should include:
|
|
77
77
|
|
|
78
78
|
- When to use it.
|
|
79
|
-
- Which `.
|
|
79
|
+
- Which `.cstl/` files to read.
|
|
80
80
|
- Which scripts to run.
|
|
81
81
|
- How to report after completion.
|
|
82
82
|
|
|
83
|
-
They should not store task state; task state belongs in `.
|
|
83
|
+
They should not store task state; task state belongs in `.cstl/tasks/` and `.cstl/.runtime/`.
|
|
84
84
|
|
|
85
85
|
Task selection uses `selected_task`, not legacy current/active task commands. The current command chain is:
|
|
86
86
|
|
|
@@ -106,7 +106,7 @@ Do not reintroduce `task.py start`, `task.py current`, or `task.py finish` into
|
|
|
106
106
|
|
|
107
107
|
1. **Keep entry files short; references carry long content**. This matters especially for multi-file skills like `cstl-meta` and `cstl-skill-creator`.
|
|
108
108
|
2. **Make trigger descriptions specific**. A description that is too broad can mis-trigger; one that is too narrow may not trigger.
|
|
109
|
-
3. **Keep behavior descriptions consistent with the shared `.
|
|
109
|
+
3. **Keep behavior descriptions consistent with the shared `.cstl/` runtime**. Format may differ per file type, but semantics should match the shared workflow.
|
|
110
110
|
4. **Put project-specific capabilities in local skills**. Do not put team-private flows into public `cstl-meta`.
|
|
111
111
|
|
|
112
|
-
If the user only wants local AI to know one more project rule, usually create a project-local skill under `.cursor/skills/` or update `.
|
|
112
|
+
If the user only wants local AI to know one more project rule, usually create a project-local skill under `.cursor/skills/` or update `.cstl/spec/` instead of changing a Trellis built-in workflow skill.
|
|
@@ -7,7 +7,7 @@ description: "Create or improve Trellis-compatible agent skills. Use when the us
|
|
|
7
7
|
|
|
8
8
|
Create high-quality skills for Trellis-managed projects and Trellis bundled templates.
|
|
9
9
|
|
|
10
|
-
This skill is the authoring and review guide for skill files. It is not the local Trellis architecture map. Use `cstl-meta` first when the user needs to understand or customize `.
|
|
10
|
+
This skill is the authoring and review guide for skill files. It is not the local Trellis architecture map. Use `cstl-meta` first when the user needs to understand or customize `.cstl/`, hooks, settings, commands, prompts, workflows, agents, or platform directory layout.
|
|
11
11
|
|
|
12
12
|
## Hard Constraints
|
|
13
13
|
|
|
@@ -39,6 +39,6 @@ This skill is the authoring and review guide for skill files. It is not the loca
|
|
|
39
39
|
## When NOT To Use
|
|
40
40
|
|
|
41
41
|
- Do not use for general Trellis architecture discovery; use `cstl-meta`.
|
|
42
|
-
- Do not use for project coding conventions that belong in `.
|
|
42
|
+
- Do not use for project coding conventions that belong in `.cstl/spec/`.
|
|
43
43
|
- Do not use for one-off commands or prompts unless the user wants a durable auto-triggered capability.
|
|
44
44
|
- Do not use for non-Trellis global skill installation or platform configuration unless the user explicitly asks for that scope.
|
package/dist/templates/common/bundled-skills/cstl-skill-creator/references/review-checklist.md
CHANGED
|
@@ -13,7 +13,7 @@ Use this checklist before handing off a new or modified skill.
|
|
|
13
13
|
|
|
14
14
|
- [ ] The skill owns one coherent workflow.
|
|
15
15
|
- [ ] `When NOT To Use` or equivalent boundary guidance is present when triggers may overlap.
|
|
16
|
-
- [ ] Project-private rules are in `.
|
|
16
|
+
- [ ] Project-private rules are in `.cstl/spec/` or a project-local skill, not in a public bundled skill.
|
|
17
17
|
- [ ] The skill distinguishes local project customization from upstream Trellis source changes.
|
|
18
18
|
|
|
19
19
|
## Entry File
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cstl-spec-bootstrap
|
|
3
|
-
description: "Bootstrap project-specific Trellis coding specs with a platform-neutral single-agent workflow. Use when creating or refreshing .
|
|
3
|
+
description: "Bootstrap project-specific Trellis coding specs with a platform-neutral single-agent workflow. Use when creating or refreshing .cstl/spec guidelines, analyzing a codebase with GitNexus, ABCoder, or source inspection, decomposing package/layer spec work, and writing real codebase-backed spec docs without placeholder text."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Trellis Spec Bootstrap
|
|
7
7
|
|
|
8
|
-
Use this skill to create or refresh `.
|
|
8
|
+
Use this skill to create or refresh `.cstl/spec/` guidelines from the real codebase. One capable agent owns the full loop: analyze the repository, choose the spec boundaries, write the docs, and verify the result. The workflow does not depend on a specific host, CLI, or agent brand.
|
|
9
9
|
|
|
10
10
|
## Workflow
|
|
11
11
|
|
|
12
|
-
1. Confirm Trellis is initialized and inspect the current `.
|
|
12
|
+
1. Confirm Trellis is initialized and inspect the current `.cstl/spec/` tree.
|
|
13
13
|
2. Analyze the repository architecture with the best available tools: GitNexus, ABCoder, language tooling, and direct source reads.
|
|
14
14
|
3. Decompose the spec work by package and layer only when that reflects the actual codebase.
|
|
15
15
|
4. Fill or reshape the spec files with concrete patterns, file paths, examples, and anti-patterns from the project.
|
|
@@ -30,11 +30,11 @@ Use this skill to create or refresh `.trellis/spec/` guidelines from the real co
|
|
|
30
30
|
- Prefer source-backed rules over generic advice. Every important recommendation should point at a real file or repeated local pattern.
|
|
31
31
|
- Keep execution single-owner by default. Optional helper agents are an implementation detail, not a requirement or user-visible dependency.
|
|
32
32
|
- Do not write platform-specific instructions unless the target project already standardizes on that platform.
|
|
33
|
-
- Do not leave placeholder text, empty headings, or copied boilerplate in `.
|
|
33
|
+
- Do not leave placeholder text, empty headings, or copied boilerplate in `.cstl/spec/`.
|
|
34
34
|
|
|
35
35
|
## Done Criteria
|
|
36
36
|
|
|
37
|
-
- `.
|
|
37
|
+
- `.cstl/spec/` describes the project as it exists now.
|
|
38
38
|
- Each relevant package or layer has practical coding guidance with real examples.
|
|
39
39
|
- Non-applicable template sections are removed.
|
|
40
40
|
- `index.md` files match the final spec file set.
|
package/dist/templates/common/bundled-skills/cstl-spec-bootstrap/references/repository-analysis.md
CHANGED
|
@@ -4,7 +4,7 @@ The goal is to discover the project's real architecture before writing rules. Do
|
|
|
4
4
|
|
|
5
5
|
## Analysis Order
|
|
6
6
|
|
|
7
|
-
1. Read the existing `.
|
|
7
|
+
1. Read the existing `.cstl/spec/` tree and note which files are templates, outdated, or already project-specific.
|
|
8
8
|
2. Inspect package manifests, build scripts, workspace config, and top-level documentation to identify packages and runtime layers.
|
|
9
9
|
3. Use GitNexus for execution flows, module clusters, dependency hubs, and impact-sensitive areas.
|
|
10
10
|
4. Use ABCoder or language-native tooling for exact signatures, types, class boundaries, and implementation examples.
|
package/dist/templates/common/bundled-skills/cstl-spec-bootstrap/references/spec-task-planning.md
CHANGED
|
@@ -20,7 +20,7 @@ When a Trellis task is useful, write a concise PRD with these sections:
|
|
|
20
20
|
# Fill <package-or-layer> Trellis Specs
|
|
21
21
|
|
|
22
22
|
## Goal
|
|
23
|
-
Write project-specific `.
|
|
23
|
+
Write project-specific `.cstl/spec/` guidance for <scope>.
|
|
24
24
|
|
|
25
25
|
## Scope
|
|
26
26
|
- Spec directory:
|
|
@@ -32,8 +32,8 @@ Write project-specific `.trellis/spec/` guidance for <scope>.
|
|
|
32
32
|
Summarize the concrete findings from repository analysis.
|
|
33
33
|
|
|
34
34
|
## Files To Create Or Update
|
|
35
|
-
- `.
|
|
36
|
-
- `.
|
|
35
|
+
- `.cstl/spec/.../index.md`
|
|
36
|
+
- `.cstl/spec/.../<topic>.md`
|
|
37
37
|
|
|
38
38
|
## Rules
|
|
39
39
|
- Adapt the spec file set to the real codebase.
|
|
@@ -64,7 +64,7 @@ Avoid passing raw `process.argv` or unvalidated config objects into shared helpe
|
|
|
64
64
|
Before finishing:
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
grep -R "To be filled\\|TODO: fill\\|placeholder" .
|
|
67
|
+
grep -R "To be filled\\|TODO: fill\\|placeholder" .cstl/spec
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
Also check links, index files, and whether any spec still describes a template rather than this repository.
|
|
@@ -7,14 +7,14 @@ Resume work only when this live session already has a `selected_task`. If no tas
|
|
|
7
7
|
## Step 1: Load Framework Context
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
{{PYTHON_CMD}} ./.
|
|
10
|
+
{{PYTHON_CMD}} ./.cstl/scripts/get_context.py
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
Confirms: selected task, Task Dashboard, git state, recent commits.
|
|
14
14
|
|
|
15
15
|
If the output says `Selected task: none`, do not auto-resume a previous or unique task. Show the dashboard and ask the user to choose one route:
|
|
16
16
|
|
|
17
|
-
- select a task with `{{PYTHON_CMD}} ./.
|
|
17
|
+
- select a task with `{{PYTHON_CMD}} ./.cstl/scripts/task.py select <task>`
|
|
18
18
|
- create a task
|
|
19
19
|
- inspect details
|
|
20
20
|
- continue without a task for No Task / Micro-Grill work
|
|
@@ -22,7 +22,7 @@ If the output says `Selected task: none`, do not auto-resume a previous or uniqu
|
|
|
22
22
|
## Step 2: Load the Phase Index
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
{{PYTHON_CMD}} ./.
|
|
25
|
+
{{PYTHON_CMD}} ./.cstl/scripts/get_context.py --mode phase
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
Shows the Phase Index (Plan / Execute / Finish) with routing + skill mapping.
|
|
@@ -40,7 +40,7 @@ When a task is selected, `get_context.py` shows the selected task's `status` fie
|
|
|
40
40
|
- `status=in_progress` + check passed → **3.1**
|
|
41
41
|
- `status=completed` (rare; usually archived immediately) → archive flow
|
|
42
42
|
|
|
43
|
-
Phase rules (full detail in `.
|
|
43
|
+
Phase rules (full detail in `.cstl/workflow.md`):
|
|
44
44
|
|
|
45
45
|
1. Run steps **in order** within a phase — `[required]` steps must not be skipped
|
|
46
46
|
2. `[once]` steps are already done if the required output exists. `prd.md` alone can be enough only for lightweight tasks; complex tasks also need `design.md` and `implement.md`.
|
|
@@ -51,7 +51,7 @@ Phase rules (full detail in `.trellis/workflow.md`):
|
|
|
51
51
|
Once you know which step to resume at:
|
|
52
52
|
|
|
53
53
|
```bash
|
|
54
|
-
{{PYTHON_CMD}} ./.
|
|
54
|
+
{{PYTHON_CMD}} ./.cstl/scripts/get_context.py --mode phase --step <X.X> --platform {{CLI_FLAG}}
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
Follow the loaded instructions. After each `[required]` step completes, move to the next.
|
|
@@ -60,4 +60,4 @@ Follow the loaded instructions. After each `[required]` step completes, move to
|
|
|
60
60
|
|
|
61
61
|
## Reference
|
|
62
62
|
|
|
63
|
-
Full workflow and detailed phase steps live in `.
|
|
63
|
+
Full workflow and detailed phase steps live in `.cstl/workflow.md`. This command is only an entry point — the canonical guidance is there.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Wrap up the current session: archive the selected task (and any other completed-but-unarchived tasks the user wants to clean up) and record the session journal. Code commits are NOT done here — those happen in workflow Phase 3.4 before you invoke this command.
|
|
4
4
|
|
|
5
|
-
Before archive, confirm `verify.md` includes Phase 3.3 **Learning decision** (`update-spec` | `no-update` | `unsure`) and gate-compatible evidence per `.
|
|
5
|
+
Before archive, confirm `verify.md` includes Phase 3.3 **Learning decision** (`update-spec` | `no-update` | `unsure`) and gate-compatible evidence per `.cstl/spec/guides/durable-learning-decision-guide.md`. Run `task.py archive <task> --check` when unsure.
|
|
6
6
|
|
|
7
7
|
## Evidence pack reference (optional — graceful skip)
|
|
8
8
|
|
|
@@ -19,7 +19,7 @@ Pack format: `version`, `source` (`retrieval-pack-orchestrator`), `contextPack.s
|
|
|
19
19
|
## Step 1: Survey current state
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
{{PYTHON_CMD}} ./.
|
|
22
|
+
{{PYTHON_CMD}} ./.cstl/scripts/get_context.py --mode record
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
This prints:
|
|
@@ -38,7 +38,7 @@ Run:
|
|
|
38
38
|
git status --porcelain
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
Filter out paths under `.
|
|
41
|
+
Filter out paths under `.cstl/workspace/` and `.cstl/tasks/` — those are managed by `add_session.py` and `task.py archive` auto-commits and will appear dirty as part of this skill's own work.
|
|
42
42
|
|
|
43
43
|
For each remaining dirty path, decide whether it belongs to **the selected task** or to **other parallel work** (e.g., another terminal window editing the same repo). Heuristics:
|
|
44
44
|
|
|
@@ -59,7 +59,7 @@ Then route:
|
|
|
59
59
|
## Step 3: Archive task(s)
|
|
60
60
|
|
|
61
61
|
```bash
|
|
62
|
-
{{PYTHON_CMD}} ./.
|
|
62
|
+
{{PYTHON_CMD}} ./.cstl/scripts/task.py archive <task-name>
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
At minimum: the selected task (if any). Plus any extra tasks the user confirmed in Step 1. Each archive produces a `chore(task): archive ...` commit via the script's auto-commit.
|
|
@@ -69,7 +69,7 @@ If there is no selected task and the user did not confirm any cleanup archives,
|
|
|
69
69
|
## Step 4: Record session journal
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
|
-
{{PYTHON_CMD}} ./.
|
|
72
|
+
{{PYTHON_CMD}} ./.cstl/scripts/add_session.py \
|
|
73
73
|
--title "Session Title" \
|
|
74
74
|
--commit "hash1,hash2" \
|
|
75
75
|
--summary "Brief summary"
|