flower-trellis 0.5.0-beta.5 → 0.5.0-beta.6
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/enhancements/0.6/overrides/bundles/intent-routing.json +4 -1
- package/enhancements/0.6/overrides/conflicts.json +75 -0
- package/enhancements/0.6/overrides/patches/scripts/task-start-brief-gate/guard-content.py +2 -0
- package/enhancements/0.6/overrides/patches/scripts/task-start-brief-gate/guard-selector.py +1 -0
- package/enhancements/0.6/overrides/patches/scripts/task-start-brief-gate/helper-content.py +59 -0
- package/enhancements/0.6/overrides/patches/scripts/task-start-brief-gate/helper-selector.py +3 -0
- package/enhancements/0.6/overrides/patches/scripts/task-start-brief-gate/patch.json +23 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/content.md +5 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/patch.json +57 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/quality-bar-baseline.md +13 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/readiness-content.md +3 -0
- package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/readiness-selector.md +3 -0
- package/enhancements/0.6/overrides/patches/workflow/hub/content.md +12 -9
- package/enhancements/0.6/overrides/patches/workflow/task-brief-review/patch.json +13 -0
- package/enhancements/0.6/overrides/patches/workflow/task-brief-review/phase-1-activate-baseline.md +13 -0
- package/enhancements/0.6/overrides/patches/workflow/task-brief-review/phase-1-activate-content.md +13 -0
- package/enhancements/MANIFEST.json +16 -3
- package/package.json +3 -3
- package/src/commands/self-update.js +1 -1
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"patches": [
|
|
7
7
|
"workflow/hub",
|
|
8
8
|
"workflow/phase-ownership",
|
|
9
|
+
"workflow/task-brief-review",
|
|
9
10
|
"workflow/state-no-task",
|
|
10
11
|
"workflow/state-missing-task",
|
|
11
12
|
"workflow/runtime-contract-reference",
|
|
@@ -25,6 +26,8 @@
|
|
|
25
26
|
"hooks/claude-session-start/missing-task-routing",
|
|
26
27
|
"skills/trellis-start/no-task-routing",
|
|
27
28
|
"skills/trellis-brainstorm/planning-authorization",
|
|
28
|
-
"skills/trellis-brainstorm/auto-task-create"
|
|
29
|
+
"skills/trellis-brainstorm/auto-task-create",
|
|
30
|
+
"skills/trellis-brainstorm/planning-handoff",
|
|
31
|
+
"scripts/task-start-brief-gate"
|
|
29
32
|
]
|
|
30
33
|
}
|
|
@@ -104,6 +104,81 @@
|
|
|
104
104
|
"owner": "workflow-phase-ownership",
|
|
105
105
|
"reason": "Phase 3.3/3.4 的受管 section 必须保留到权威 Skill 的一跳入口。"
|
|
106
106
|
},
|
|
107
|
+
{
|
|
108
|
+
"id": "workflow-required-task-brief-review",
|
|
109
|
+
"severity": "error",
|
|
110
|
+
"target": ".trellis/workflow.md",
|
|
111
|
+
"whenOperations": [
|
|
112
|
+
"workflow-phase-1-activate"
|
|
113
|
+
],
|
|
114
|
+
"assertion": {
|
|
115
|
+
"type": "required-literal",
|
|
116
|
+
"values": [
|
|
117
|
+
"<!-- BEGIN skill-garden patch workflow-phase-1-activate v0.6 -->\n#### 1.4 Activate task `[required · once]`\n\nBefore changing task status, load `trellis-task-brief`",
|
|
118
|
+
"display the full brief in chat, then stop the current turn and wait for planning review confirmation"
|
|
119
|
+
]
|
|
120
|
+
},
|
|
121
|
+
"owner": "trellis-task-brief",
|
|
122
|
+
"reason": "Phase 1.4 必须自包含 brief 展示、停止和后续确认门禁。"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "brainstorm-required-planning-handoff",
|
|
126
|
+
"severity": "error",
|
|
127
|
+
"target": ".agents/skills/trellis-brainstorm/SKILL.md",
|
|
128
|
+
"whenOperations": [
|
|
129
|
+
"brainstorm-planning-handoff",
|
|
130
|
+
"brainstorm-planning-readiness"
|
|
131
|
+
],
|
|
132
|
+
"assertion": {
|
|
133
|
+
"type": "required-literal",
|
|
134
|
+
"values": [
|
|
135
|
+
"<!-- BEGIN skill-garden patch brainstorm-planning-handoff v0.6 -->\n## Planning Handoff",
|
|
136
|
+
"<!-- BEGIN skill-garden patch brainstorm-planning-readiness v0.6 -->\n- Planning artifacts are ready for the final brief handoff.",
|
|
137
|
+
"Implementation intent expressed before the final artifacts and full brief are shown authorizes planning only"
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
"owner": "trellis-brainstorm",
|
|
141
|
+
"reason": "Brainstorm 收尾必须交给 task brief review,不能复用早期实现意向。"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"id": "brainstorm-required-planning-handoff-claude",
|
|
145
|
+
"severity": "error",
|
|
146
|
+
"target": ".claude/skills/trellis-brainstorm/SKILL.md",
|
|
147
|
+
"whenOperations": [
|
|
148
|
+
"brainstorm-planning-handoff",
|
|
149
|
+
"brainstorm-planning-readiness"
|
|
150
|
+
],
|
|
151
|
+
"assertion": {
|
|
152
|
+
"type": "required-literal",
|
|
153
|
+
"values": [
|
|
154
|
+
"<!-- BEGIN skill-garden patch brainstorm-planning-handoff v0.6 -->\n## Planning Handoff",
|
|
155
|
+
"<!-- BEGIN skill-garden patch brainstorm-planning-readiness v0.6 -->\n- Planning artifacts are ready for the final brief handoff.",
|
|
156
|
+
"Implementation intent expressed before the final artifacts and full brief are shown authorizes planning only"
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
"owner": "trellis-brainstorm",
|
|
160
|
+
"reason": "Claude 的 Brainstorm 最终入口必须保留相同 planning handoff。"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "task-start-required-brief-gate",
|
|
164
|
+
"severity": "error",
|
|
165
|
+
"target": ".trellis/scripts/task.py",
|
|
166
|
+
"whenOperations": [
|
|
167
|
+
"task-start-brief-validator",
|
|
168
|
+
"task-start-brief-guard"
|
|
169
|
+
],
|
|
170
|
+
"assertion": {
|
|
171
|
+
"type": "required-literal",
|
|
172
|
+
"values": [
|
|
173
|
+
"# BEGIN skill-garden patch task-start-brief-validator v0.6",
|
|
174
|
+
"# BEGIN skill-garden patch task-start-brief-guard v0.6",
|
|
175
|
+
"Error: Planning task brief.md is missing.",
|
|
176
|
+
"Error: Planning task brief.md is stale; newer artifacts:"
|
|
177
|
+
]
|
|
178
|
+
},
|
|
179
|
+
"owner": "task-start-brief-gate",
|
|
180
|
+
"reason": "planning → in_progress 前必须确定性阻断缺失或过期 brief。"
|
|
181
|
+
},
|
|
107
182
|
{
|
|
108
183
|
"id": "workflow-no-covering-language",
|
|
109
184
|
"severity": "error",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
task_json_path = full_path / FILE_TASK_JSON
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
def _validate_planning_brief(full_path, task_json_path) -> bool:
|
|
2
|
+
"""Validate that a planning task has a fresh derived brief before start.
|
|
3
|
+
|
|
4
|
+
Args:
|
|
5
|
+
full_path: Absolute task directory path.
|
|
6
|
+
task_json_path: Absolute path to the task metadata file.
|
|
7
|
+
|
|
8
|
+
Returns:
|
|
9
|
+
True when start may continue, otherwise False.
|
|
10
|
+
"""
|
|
11
|
+
try:
|
|
12
|
+
task_json_exists = task_json_path.is_file()
|
|
13
|
+
except OSError as error:
|
|
14
|
+
print(colored(f"Error: Unable to validate planning task status: {error}", Colors.RED))
|
|
15
|
+
print("Hint: Fix task metadata access before retrying task.py start.")
|
|
16
|
+
return False
|
|
17
|
+
|
|
18
|
+
if not task_json_exists:
|
|
19
|
+
return True
|
|
20
|
+
|
|
21
|
+
data = read_json(task_json_path)
|
|
22
|
+
if not data:
|
|
23
|
+
print(colored("Error: Unable to read task status for brief validation.", Colors.RED))
|
|
24
|
+
print("Hint: Fix task.json before retrying task.py start.")
|
|
25
|
+
return False
|
|
26
|
+
if data.get("status") != "planning":
|
|
27
|
+
return True
|
|
28
|
+
|
|
29
|
+
brief_path = full_path / "brief.md"
|
|
30
|
+
try:
|
|
31
|
+
if not brief_path.is_file():
|
|
32
|
+
print(colored("Error: Planning task brief.md is missing.", Colors.RED))
|
|
33
|
+
print("Hint: Run trellis-task-brief, display the full brief, and wait for user confirmation before retrying task.py start.")
|
|
34
|
+
return False
|
|
35
|
+
brief_mtime = brief_path.stat().st_mtime_ns
|
|
36
|
+
authoritative_paths = [
|
|
37
|
+
full_path / name
|
|
38
|
+
for name in ("prd.md", "design.md", "implement.md")
|
|
39
|
+
if (full_path / name).is_file()
|
|
40
|
+
]
|
|
41
|
+
stale_sources = [
|
|
42
|
+
path.name
|
|
43
|
+
for path in authoritative_paths
|
|
44
|
+
if path.stat().st_mtime_ns > brief_mtime
|
|
45
|
+
]
|
|
46
|
+
except OSError as error:
|
|
47
|
+
print(colored(f"Error: Unable to validate planning brief freshness: {error}", Colors.RED))
|
|
48
|
+
print("Hint: Fix task artifact access, then refresh and review brief.md before retrying task.py start.")
|
|
49
|
+
return False
|
|
50
|
+
|
|
51
|
+
if stale_sources:
|
|
52
|
+
print(colored(
|
|
53
|
+
f"Error: Planning task brief.md is stale; newer artifacts: {', '.join(stale_sources)}.",
|
|
54
|
+
Colors.RED,
|
|
55
|
+
))
|
|
56
|
+
print("Hint: Run trellis-task-brief, display the refreshed brief, and wait for user confirmation before retrying task.py start.")
|
|
57
|
+
return False
|
|
58
|
+
|
|
59
|
+
return True
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"id": "task-start-brief-gate",
|
|
4
|
+
"purpose": "planning_review",
|
|
5
|
+
"operations": [
|
|
6
|
+
{
|
|
7
|
+
"id": "task-start-brief-validator",
|
|
8
|
+
"operation": "insert",
|
|
9
|
+
"position": "after",
|
|
10
|
+
"targets": [{ "kind": "file", "path": ".trellis/scripts/task.py", "missing": "error", "markerStyle": "hash" }],
|
|
11
|
+
"selector": { "type": "literal", "source": "helper-selector.py" },
|
|
12
|
+
"content": { "source": "helper-content.py" }
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "task-start-brief-guard",
|
|
16
|
+
"operation": "insert",
|
|
17
|
+
"position": "after",
|
|
18
|
+
"targets": [{ "kind": "file", "path": ".trellis/scripts/task.py", "missing": "error", "markerStyle": "hash" }],
|
|
19
|
+
"selector": { "type": "literal", "source": "guard-selector.py" },
|
|
20
|
+
"content": { "source": "guard-content.py" }
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/content.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
## Planning Handoff
|
|
2
|
+
|
|
3
|
+
Once the Quality Bar is satisfied, load `trellis-task-brief`, refresh `brief.md` from the final planning artifacts, display the full brief in chat, and end the current turn. Wait for the user's planning review confirmation before running `task.py start` or beginning implementation.
|
|
4
|
+
|
|
5
|
+
Implementation intent expressed before the final artifacts and full brief are shown authorizes planning only; it cannot be reused as the final review confirmation.
|
package/enhancements/0.6/overrides/patches/skills/trellis-brainstorm/planning-handoff/patch.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"id": "brainstorm-planning-handoff",
|
|
4
|
+
"purpose": "planning_review",
|
|
5
|
+
"operations": [
|
|
6
|
+
{
|
|
7
|
+
"id": "brainstorm-planning-handoff",
|
|
8
|
+
"operation": "insert",
|
|
9
|
+
"position": "after",
|
|
10
|
+
"targets": [
|
|
11
|
+
{ "kind": "skill", "path": ".agent/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
12
|
+
{ "kind": "skill", "path": ".agents/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
13
|
+
{ "kind": "skill", "path": ".claude/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
14
|
+
{ "kind": "skill", "path": ".codebuddy/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
15
|
+
{ "kind": "skill", "path": ".cursor/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
16
|
+
{ "kind": "skill", "path": ".devin/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
17
|
+
{ "kind": "skill", "path": ".factory/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
18
|
+
{ "kind": "skill", "path": ".github/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
19
|
+
{ "kind": "skill", "path": ".kilocode/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
20
|
+
{ "kind": "skill", "path": ".kiro/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
21
|
+
{ "kind": "skill", "path": ".opencode/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
22
|
+
{ "kind": "skill", "path": ".pi/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
23
|
+
{ "kind": "skill", "path": ".qoder/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
24
|
+
{ "kind": "skill", "path": ".reasonix/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
25
|
+
{ "kind": "skill", "path": ".trae/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
26
|
+
{ "kind": "skill", "path": ".zcode/skills/trellis-brainstorm/SKILL.md", "missing": "skip" }
|
|
27
|
+
],
|
|
28
|
+
"selector": { "type": "markdown-section", "heading": "## Quality Bar" },
|
|
29
|
+
"baselines": ["quality-bar-baseline.md"],
|
|
30
|
+
"content": { "source": "content.md" }
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "brainstorm-planning-readiness",
|
|
34
|
+
"operation": "replace",
|
|
35
|
+
"targets": [
|
|
36
|
+
{ "kind": "skill", "path": ".agent/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
37
|
+
{ "kind": "skill", "path": ".agents/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
38
|
+
{ "kind": "skill", "path": ".claude/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
39
|
+
{ "kind": "skill", "path": ".codebuddy/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
40
|
+
{ "kind": "skill", "path": ".cursor/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
41
|
+
{ "kind": "skill", "path": ".devin/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
42
|
+
{ "kind": "skill", "path": ".factory/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
43
|
+
{ "kind": "skill", "path": ".github/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
44
|
+
{ "kind": "skill", "path": ".kilocode/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
45
|
+
{ "kind": "skill", "path": ".kiro/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
46
|
+
{ "kind": "skill", "path": ".opencode/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
47
|
+
{ "kind": "skill", "path": ".pi/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
48
|
+
{ "kind": "skill", "path": ".qoder/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
49
|
+
{ "kind": "skill", "path": ".reasonix/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
50
|
+
{ "kind": "skill", "path": ".trae/skills/trellis-brainstorm/SKILL.md", "missing": "skip" },
|
|
51
|
+
{ "kind": "skill", "path": ".zcode/skills/trellis-brainstorm/SKILL.md", "missing": "skip" }
|
|
52
|
+
],
|
|
53
|
+
"selector": { "type": "literal", "source": "readiness-selector.md" },
|
|
54
|
+
"content": { "source": "readiness-content.md" }
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
## Quality Bar
|
|
2
|
+
|
|
3
|
+
Before declaring planning ready:
|
|
4
|
+
|
|
5
|
+
- `prd.md` contains testable acceptance criteria.
|
|
6
|
+
- `prd.md` has passed the PRD convergence pass: no unresolved temporary brainstorm sections, no duplicate facts across sections, and no lost anchors, decisions, or acceptance mappings.
|
|
7
|
+
- Repository-answerable questions have already been answered through inspection.
|
|
8
|
+
- Remaining open questions are genuinely about user intent or scope.
|
|
9
|
+
- Complex tasks have `design.md` and `implement.md`.
|
|
10
|
+
- Sub-agent-dispatch tasks have real curated entries in both `implement.jsonl` and `check.jsonl`; seed-only manifests are not ready.
|
|
11
|
+
- The user has reviewed the final planning artifacts or explicitly approved proceeding.
|
|
12
|
+
|
|
13
|
+
Do not start implementation until the user approves or asks for implementation.
|
|
@@ -50,6 +50,14 @@ structured blocker. Never force-delete or silently leave a dormant planning task
|
|
|
50
50
|
|
|
51
51
|
Before `task.py start`, unclear scope, unresolved decisions, or non-testable acceptance criteria must return to `trellis-brainstorm`.
|
|
52
52
|
|
|
53
|
+
#### Task Brief Handoff
|
|
54
|
+
|
|
55
|
+
Before Phase 1.4, use `trellis-task-brief` to refresh `<task>/brief.md`, display it in full, and wait for user confirmation before `task.py start`.
|
|
56
|
+
|
|
57
|
+
Implementation intent before that handoff authorizes planning only, not review confirmation.
|
|
58
|
+
|
|
59
|
+
`brief.md` is derived; `prd.md` / `design.md` / `implement.md` remain authoritative.
|
|
60
|
+
|
|
53
61
|
#### Project Knowledge Discovery
|
|
54
62
|
|
|
55
63
|
Before choosing an approach for non-trivial project work, run project knowledge
|
|
@@ -72,19 +80,14 @@ If nothing matches, continue normally. Skip pure Q&A, simple read-only inspectio
|
|
|
72
80
|
opening local tools, or trivial edits unless project conventions or local SOPs may
|
|
73
81
|
change the approach.
|
|
74
82
|
|
|
75
|
-
#### Task Brief Handoff
|
|
76
|
-
|
|
77
|
-
Before Phase 1.4 `task.py start`, use `trellis-task-brief` to refresh `<task>/brief.md` from latest task artifacts, display it in chat, and wait for user confirmation.
|
|
78
|
-
|
|
79
|
-
`brief.md` is derived; `prd.md` / `design.md` / `implement.md` remain authoritative.
|
|
80
|
-
|
|
81
|
-
Before the first implement route, restate existing `<task>/brief.md` in chat. If missing, read task artifacts and suggest backfilling brief; do not invent one from memory.
|
|
82
|
-
|
|
83
83
|
#### Flower Update Confirmation
|
|
84
84
|
|
|
85
85
|
If `<flower-update>` has `priority: blocking_confirmation_required`, handle it first: briefly show `release_notes` when present, show `recommended_command`, and ask before running it.
|
|
86
86
|
|
|
87
|
-
If `<flower-update-result>` requests `run_trellis_push_confirmation`,
|
|
87
|
+
If `<flower-update-result>` requests `run_trellis_push_confirmation`, load and follow
|
|
88
|
+
`trellis-push` before any Git inspection or plan; never replace it with a hand-written
|
|
89
|
+
Git summary. Use update changes as default candidates and wait for file-list and
|
|
90
|
+
commit-message confirmation.
|
|
88
91
|
|
|
89
92
|
#### Active Task Scope Guard
|
|
90
93
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"id": "workflow-task-brief-review",
|
|
4
|
+
"purpose": "planning_review",
|
|
5
|
+
"operations": [{
|
|
6
|
+
"id": "workflow-phase-1-activate",
|
|
7
|
+
"operation": "replace",
|
|
8
|
+
"targets": [{ "kind": "workflow", "path": ".trellis/workflow.md", "missing": "error" }],
|
|
9
|
+
"selector": { "type": "markdown-section", "heading": "#### 1.4 Activate task `[required · once]`" },
|
|
10
|
+
"baselines": ["phase-1-activate-baseline.md"],
|
|
11
|
+
"content": { "source": "phase-1-activate-content.md" }
|
|
12
|
+
}]
|
|
13
|
+
}
|
package/enhancements/0.6/overrides/patches/workflow/task-brief-review/phase-1-activate-baseline.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#### 1.4 Activate task `[required · once]`
|
|
2
|
+
|
|
3
|
+
After artifact review, flip the task status to `in_progress`:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
python3 ./.trellis/scripts/task.py start <task-dir>
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
For lightweight tasks, `prd.md` can be enough. For complex tasks, `prd.md`, `design.md`, and `implement.md` must exist and be reviewed before start. On sub-agent-dispatch platforms, `implement.jsonl` and `check.jsonl` must both have real curated entries before start. Runtime consumers tolerate missing or seed-only manifests for compatibility, but that tolerance is not a planning-ready state.
|
|
10
|
+
|
|
11
|
+
After this command succeeds, the breadcrumb auto-switches to `[workflow-state:in_progress]`, and the rest of Phase 2 / 3 follows.
|
|
12
|
+
|
|
13
|
+
If `task.py start` errors with a session-identity message (no context key from hook input, `TRELLIS_CONTEXT_ID`, or platform-native session env), follow the hint in the error to set up session identity, then retry.
|
package/enhancements/0.6/overrides/patches/workflow/task-brief-review/phase-1-activate-content.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#### 1.4 Activate task `[required · once]`
|
|
2
|
+
|
|
3
|
+
Before changing task status, load `trellis-task-brief`, refresh `<task>/brief.md`, display the full brief in chat, then stop the current turn and wait for planning review confirmation. Earlier implementation intent is not confirmation.
|
|
4
|
+
|
|
5
|
+
Lightweight tasks need `prd.md`; complex tasks also need `design.md` and `implement.md`. Sub-agent routes require real entries in both JSONL manifests.
|
|
6
|
+
|
|
7
|
+
Only after the user confirms the displayed brief in a later message, run:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
python3 ./.trellis/scripts/task.py start <task-dir>
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
If start rejects a missing or stale brief, repeat the brief handoff. Follow any session-identity hint; after success, enter `trellis-route(target=implement)`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"syncedAt": "2026-07-
|
|
2
|
+
"syncedAt": "2026-07-22T08:28:47.363Z",
|
|
3
3
|
"syncedFrom": "vendor/skill-garden",
|
|
4
|
-
"sourceCommit": "
|
|
4
|
+
"sourceCommit": "6396573a9fb6776b326286390d41040ecdf4adcf",
|
|
5
5
|
"common": {
|
|
6
6
|
"codexSkills": [
|
|
7
7
|
"craft-rpa",
|
|
@@ -147,12 +147,22 @@
|
|
|
147
147
|
"hooks/inject-workflow-state/shared-runtime/content.py",
|
|
148
148
|
"hooks/inject-workflow-state/shared-runtime/patch.json",
|
|
149
149
|
"hooks/inject-workflow-state/shared-runtime/selector.py",
|
|
150
|
+
"scripts/task-start-brief-gate/guard-content.py",
|
|
151
|
+
"scripts/task-start-brief-gate/guard-selector.py",
|
|
152
|
+
"scripts/task-start-brief-gate/helper-content.py",
|
|
153
|
+
"scripts/task-start-brief-gate/helper-selector.py",
|
|
154
|
+
"scripts/task-start-brief-gate/patch.json",
|
|
150
155
|
"skills/trellis-brainstorm/auto-task-create/content.md",
|
|
151
156
|
"skills/trellis-brainstorm/auto-task-create/patch.json",
|
|
152
157
|
"skills/trellis-brainstorm/auto-task-create/selector.md",
|
|
153
158
|
"skills/trellis-brainstorm/planning-authorization/content.md",
|
|
154
159
|
"skills/trellis-brainstorm/planning-authorization/patch.json",
|
|
155
160
|
"skills/trellis-brainstorm/planning-authorization/selector.md",
|
|
161
|
+
"skills/trellis-brainstorm/planning-handoff/content.md",
|
|
162
|
+
"skills/trellis-brainstorm/planning-handoff/patch.json",
|
|
163
|
+
"skills/trellis-brainstorm/planning-handoff/quality-bar-baseline.md",
|
|
164
|
+
"skills/trellis-brainstorm/planning-handoff/readiness-content.md",
|
|
165
|
+
"skills/trellis-brainstorm/planning-handoff/readiness-selector.md",
|
|
156
166
|
"skills/trellis-finish-work/exact-bookkeeping/baseline-agent.md",
|
|
157
167
|
"skills/trellis-finish-work/exact-bookkeeping/baseline-command.md",
|
|
158
168
|
"skills/trellis-finish-work/exact-bookkeeping/content.md",
|
|
@@ -221,7 +231,10 @@
|
|
|
221
231
|
"workflow/states-planning/patch.json",
|
|
222
232
|
"workflow/states-planning/planning-baseline.md",
|
|
223
233
|
"workflow/states-planning/planning-inline-baseline.md",
|
|
224
|
-
"workflow/states-planning/subagent-content.md"
|
|
234
|
+
"workflow/states-planning/subagent-content.md",
|
|
235
|
+
"workflow/task-brief-review/patch.json",
|
|
236
|
+
"workflow/task-brief-review/phase-1-activate-baseline.md",
|
|
237
|
+
"workflow/task-brief-review/phase-1-activate-content.md"
|
|
225
238
|
],
|
|
226
239
|
"bundles": [
|
|
227
240
|
"finish-work.json",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flower-trellis",
|
|
3
|
-
"version": "0.5.0-beta.
|
|
3
|
+
"version": "0.5.0-beta.6",
|
|
4
4
|
"description": "一键安装/升级 Trellis 并自动融合 skill-garden 强化包(默认 Claude + agents)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -61,9 +61,9 @@
|
|
|
61
61
|
"commit-and-tag-version": "^12.7.3"
|
|
62
62
|
},
|
|
63
63
|
"flowerReleaseNotes": {
|
|
64
|
-
"version": "0.5.0-beta.
|
|
64
|
+
"version": "0.5.0-beta.6",
|
|
65
65
|
"source": "CHANGELOG.md",
|
|
66
|
-
"body": "### 🐛 修复 Bug Fixes\n\n* **
|
|
66
|
+
"body": "### 🐛 修复 Bug Fixes\n\n* **update:** 防止升级后绕过 trellis-push ([8a34b91](https://github.com/SilentFlower/flower-trellis/commit/8a34b91aa381c73ee56b9ba5bed960778ba2bbd3))\n* **workflow:** 强制任务 brief 确认门禁 ([7750c62](https://github.com/SilentFlower/flower-trellis/commit/7750c62417cabdf519e249deae147e1ec0ec14ac))",
|
|
67
67
|
"truncated": false
|
|
68
68
|
}
|
|
69
69
|
}
|
|
@@ -200,6 +200,6 @@ export async function selfUpdate(ctx) {
|
|
|
200
200
|
post_action: "run_trellis_push_confirmation",
|
|
201
201
|
release_notes: check.releaseNotes || null,
|
|
202
202
|
ai_instruction:
|
|
203
|
-
"
|
|
203
|
+
"必须先加载并遵循 `trellis-push`,不得用自行 Git 检查或手写计划替代;以本次升级变动为默认候选,展示文件列表和 commit message 后等待确认。",
|
|
204
204
|
});
|
|
205
205
|
}
|