cleargate 0.8.2 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/CHANGELOG.md +210 -0
  2. package/README.md +22 -1
  3. package/dist/MANIFEST.json +276 -31
  4. package/dist/chunk-HZPJ5QX4.js +459 -0
  5. package/dist/chunk-HZPJ5QX4.js.map +1 -0
  6. package/dist/{chunk-OM4FAEA7.js → chunk-Q3BTSXCK.js} +69 -3
  7. package/dist/chunk-Q3BTSXCK.js.map +1 -0
  8. package/dist/cli.cjs +2888 -598
  9. package/dist/cli.cjs.map +1 -1
  10. package/dist/cli.js +2481 -619
  11. package/dist/cli.js.map +1 -1
  12. package/dist/lib/ledger.cjs +120 -0
  13. package/dist/lib/ledger.cjs.map +1 -0
  14. package/dist/lib/ledger.d.cts +64 -0
  15. package/dist/lib/ledger.d.ts +64 -0
  16. package/dist/lib/ledger.js +96 -0
  17. package/dist/lib/ledger.js.map +1 -0
  18. package/dist/lib/lifecycle-reconcile.cjs +497 -0
  19. package/dist/lib/lifecycle-reconcile.cjs.map +1 -0
  20. package/dist/lib/lifecycle-reconcile.d.cts +136 -0
  21. package/dist/lib/lifecycle-reconcile.d.ts +136 -0
  22. package/dist/lib/lifecycle-reconcile.js +20 -0
  23. package/dist/lib/lifecycle-reconcile.js.map +1 -0
  24. package/dist/templates/cleargate-planning/.claude/agents/architect.md +65 -10
  25. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-contradict.md +108 -0
  26. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-ingest.md +49 -3
  27. package/dist/templates/cleargate-planning/.claude/agents/cleargate-wiki-lint.md +6 -1
  28. package/dist/templates/cleargate-planning/.claude/agents/developer.md +51 -2
  29. package/dist/templates/cleargate-planning/.claude/agents/devops.md +249 -0
  30. package/dist/templates/cleargate-planning/.claude/agents/qa.md +91 -1
  31. package/dist/templates/cleargate-planning/.claude/agents/reporter.md +72 -14
  32. package/dist/templates/cleargate-planning/.claude/hooks/pre-commit-surface-gate.sh +21 -0
  33. package/dist/templates/cleargate-planning/.claude/hooks/pre-tool-use-task.sh +148 -0
  34. package/dist/templates/cleargate-planning/.claude/hooks/session-start.sh +6 -0
  35. package/dist/templates/cleargate-planning/.claude/hooks/stamp-and-gate.sh +12 -1
  36. package/dist/templates/cleargate-planning/.claude/hooks/token-ledger.sh +334 -96
  37. package/dist/templates/cleargate-planning/.claude/settings.json +4 -0
  38. package/dist/templates/cleargate-planning/.claude/skills/sprint-execution/SKILL.md +644 -0
  39. package/dist/templates/cleargate-planning/.cleargate/config.example.yml +19 -0
  40. package/dist/templates/cleargate-planning/.cleargate/knowledge/cleargate-enforcement.md +542 -0
  41. package/dist/templates/cleargate-planning/.cleargate/knowledge/cleargate-protocol.md +102 -428
  42. package/dist/templates/cleargate-planning/.cleargate/knowledge/mid-sprint-triage-rubric.md +160 -0
  43. package/dist/templates/cleargate-planning/.cleargate/knowledge/readiness-gates.md +72 -9
  44. package/dist/templates/cleargate-planning/.cleargate/knowledge/sprint-closeout-checklist.md +71 -0
  45. package/dist/templates/cleargate-planning/.cleargate/scripts/assert_story_files.mjs +24 -2
  46. package/dist/templates/cleargate-planning/.cleargate/scripts/close_sprint.mjs +471 -29
  47. package/dist/templates/cleargate-planning/.cleargate/scripts/dedupe_frontmatter.mjs +219 -0
  48. package/dist/templates/cleargate-planning/.cleargate/scripts/gate-checks.json +3 -3
  49. package/dist/templates/cleargate-planning/.cleargate/scripts/init_sprint.mjs +86 -10
  50. package/dist/templates/cleargate-planning/.cleargate/scripts/lib/report-filename.mjs +54 -0
  51. package/dist/templates/cleargate-planning/.cleargate/scripts/prep_doc_refresh.mjs +378 -0
  52. package/dist/templates/cleargate-planning/.cleargate/scripts/prep_qa_context.mjs +888 -0
  53. package/dist/templates/cleargate-planning/.cleargate/scripts/run_script.sh +173 -87
  54. package/dist/templates/cleargate-planning/.cleargate/scripts/sprint_trends.mjs +71 -0
  55. package/dist/templates/cleargate-planning/.cleargate/scripts/suggest_improvements.mjs +483 -13
  56. package/dist/templates/cleargate-planning/.cleargate/scripts/test/test_prep_qa_context.sh +482 -0
  57. package/dist/templates/cleargate-planning/.cleargate/scripts/validate_state.mjs +32 -8
  58. package/dist/templates/cleargate-planning/.cleargate/scripts/write_dispatch.sh +136 -0
  59. package/dist/templates/cleargate-planning/.cleargate/templates/Bug.md +27 -1
  60. package/dist/templates/cleargate-planning/.cleargate/templates/CR.md +35 -1
  61. package/dist/templates/cleargate-planning/.cleargate/templates/Sprint Plan Template.md +48 -14
  62. package/dist/templates/cleargate-planning/.cleargate/templates/epic.md +40 -3
  63. package/dist/templates/cleargate-planning/.cleargate/templates/hotfix.md +53 -0
  64. package/dist/templates/cleargate-planning/.cleargate/templates/initiative.md +98 -29
  65. package/dist/templates/cleargate-planning/.cleargate/templates/proposal.md +17 -4
  66. package/dist/templates/cleargate-planning/.cleargate/templates/sprint_context.md +8 -0
  67. package/dist/templates/cleargate-planning/.cleargate/templates/sprint_report.md +23 -4
  68. package/dist/templates/cleargate-planning/.cleargate/templates/story.md +58 -3
  69. package/dist/templates/cleargate-planning/CLAUDE.md +30 -10
  70. package/dist/templates/cleargate-planning/MANIFEST.json +276 -31
  71. package/dist/{whoami-CX7CXJD5.js → whoami-W4U6DPVG.js} +17 -17
  72. package/dist/whoami-W4U6DPVG.js.map +1 -0
  73. package/package.json +20 -6
  74. package/templates/cleargate-planning/.claude/agents/architect.md +65 -10
  75. package/templates/cleargate-planning/.claude/agents/cleargate-wiki-contradict.md +108 -0
  76. package/templates/cleargate-planning/.claude/agents/cleargate-wiki-ingest.md +49 -3
  77. package/templates/cleargate-planning/.claude/agents/cleargate-wiki-lint.md +6 -1
  78. package/templates/cleargate-planning/.claude/agents/developer.md +51 -2
  79. package/templates/cleargate-planning/.claude/agents/devops.md +249 -0
  80. package/templates/cleargate-planning/.claude/agents/qa.md +91 -1
  81. package/templates/cleargate-planning/.claude/agents/reporter.md +72 -14
  82. package/templates/cleargate-planning/.claude/hooks/pre-commit-surface-gate.sh +21 -0
  83. package/templates/cleargate-planning/.claude/hooks/pre-tool-use-task.sh +148 -0
  84. package/templates/cleargate-planning/.claude/hooks/session-start.sh +6 -0
  85. package/templates/cleargate-planning/.claude/hooks/stamp-and-gate.sh +12 -1
  86. package/templates/cleargate-planning/.claude/hooks/token-ledger.sh +334 -96
  87. package/templates/cleargate-planning/.claude/settings.json +4 -0
  88. package/templates/cleargate-planning/.claude/skills/sprint-execution/SKILL.md +644 -0
  89. package/templates/cleargate-planning/.cleargate/config.example.yml +19 -0
  90. package/templates/cleargate-planning/.cleargate/knowledge/cleargate-enforcement.md +542 -0
  91. package/templates/cleargate-planning/.cleargate/knowledge/cleargate-protocol.md +102 -428
  92. package/templates/cleargate-planning/.cleargate/knowledge/mid-sprint-triage-rubric.md +160 -0
  93. package/templates/cleargate-planning/.cleargate/knowledge/readiness-gates.md +72 -9
  94. package/templates/cleargate-planning/.cleargate/knowledge/sprint-closeout-checklist.md +71 -0
  95. package/templates/cleargate-planning/.cleargate/scripts/assert_story_files.mjs +24 -2
  96. package/templates/cleargate-planning/.cleargate/scripts/close_sprint.mjs +471 -29
  97. package/templates/cleargate-planning/.cleargate/scripts/dedupe_frontmatter.mjs +219 -0
  98. package/templates/cleargate-planning/.cleargate/scripts/gate-checks.json +3 -3
  99. package/templates/cleargate-planning/.cleargate/scripts/init_sprint.mjs +86 -10
  100. package/templates/cleargate-planning/.cleargate/scripts/lib/report-filename.mjs +54 -0
  101. package/templates/cleargate-planning/.cleargate/scripts/prep_doc_refresh.mjs +378 -0
  102. package/templates/cleargate-planning/.cleargate/scripts/prep_qa_context.mjs +888 -0
  103. package/templates/cleargate-planning/.cleargate/scripts/run_script.sh +173 -87
  104. package/templates/cleargate-planning/.cleargate/scripts/sprint_trends.mjs +71 -0
  105. package/templates/cleargate-planning/.cleargate/scripts/suggest_improvements.mjs +483 -13
  106. package/templates/cleargate-planning/.cleargate/scripts/test/test_prep_qa_context.sh +482 -0
  107. package/templates/cleargate-planning/.cleargate/scripts/validate_state.mjs +32 -8
  108. package/templates/cleargate-planning/.cleargate/scripts/write_dispatch.sh +136 -0
  109. package/templates/cleargate-planning/.cleargate/templates/Bug.md +27 -1
  110. package/templates/cleargate-planning/.cleargate/templates/CR.md +35 -1
  111. package/templates/cleargate-planning/.cleargate/templates/Sprint Plan Template.md +48 -14
  112. package/templates/cleargate-planning/.cleargate/templates/epic.md +40 -3
  113. package/templates/cleargate-planning/.cleargate/templates/hotfix.md +53 -0
  114. package/templates/cleargate-planning/.cleargate/templates/initiative.md +98 -29
  115. package/templates/cleargate-planning/.cleargate/templates/sprint_context.md +8 -0
  116. package/templates/cleargate-planning/.cleargate/templates/sprint_report.md +23 -4
  117. package/templates/cleargate-planning/.cleargate/templates/story.md +58 -3
  118. package/templates/cleargate-planning/CLAUDE.md +30 -10
  119. package/templates/cleargate-planning/MANIFEST.json +276 -31
  120. package/dist/chunk-OM4FAEA7.js.map +0 -1
  121. package/dist/whoami-CX7CXJD5.js.map +0 -1
  122. package/templates/cleargate-planning/.cleargate/templates/proposal.md +0 -61
@@ -1,6 +1,6 @@
1
1
  <instructions>
2
2
  FOLLOW THIS EXACT STRUCTURE. Output sections in order 1-4.
3
- YAML Frontmatter: Story ID, Parent Epic, Status, Ambiguity, Context Source (MUST link to approved proposal.md), Actor, Complexity Label.
3
+ YAML Frontmatter: Story ID, Parent Epic, Status, Ambiguity, Context Source, Actor, Complexity Label.
4
4
  §1 The Spec: User Story + Detailed Requirements + Out of Scope.
5
5
  §2 The Truth: Gherkin acceptance criteria + manual verification steps.
6
6
  §3 Implementation Guide: Files to modify, technical logic, API contract. Sourced from approved proposal.md.
@@ -16,6 +16,10 @@ L3: Complex — Cross-cutting, spike may be needed, ~1-2 days
16
16
  L4: Uncertain — Requires probing/spiking, >2 days
17
17
 
18
18
  Granularity Rubric (run this check BEFORE emitting a story during epic-decomposition):
19
+ A candidate story is **too small** — file a CR or submit the PR directly — if ANY signal trips:
20
+ • Could this be a config change, a parameter addition, or a one-line edit? If yes, this is not a Story.
21
+ • The change touches one already-existing function/class and the diff fits in <30 LOC.
22
+ • The work amounts to renaming, formatting, or moving without behavior change.
19
23
  A candidate story is too big — emit two stories instead, with consecutive IDs (e.g. STORY-007-03 and STORY-007-04, never 03a/03b) — if ANY signal trips:
20
24
  • §1.2 Detailed Requirements joins unrelated user goals with "and also" / "additionally".
21
25
  • §2.1 Gherkin would need >5 scenarios covering unrelated behaviors.
@@ -29,15 +33,32 @@ When the rubric is ambiguous, surface the decision to the human as a one-liner (
29
33
  §0.1 v2 Decomposition Signals:
30
34
  `parallel_eligible`: "y" if this story can run concurrently with other stories in the same milestone; "n" if it has a strict predecessor dependency. Default "y". Set by Architect during Sprint Design Review.
31
35
  `expected_bounce_exposure`: "low" | "med" | "high" — predicted re-work risk derived from §2.1 scenario count + §3 file-count + ambiguity level. Default "low". Set by Architect. Used by orchestrator to sequence high-exposure stories before low-exposure ones in a v2 sprint to surface risk early.
32
- `lane`: "standard" | "fast" — Architect-set during Sprint Design Review per the seven-check rubric in protocol §24. Default "standard". Absent in pre-EPIC-022 stories means standard per the migration default in update_state.mjs.
36
+ `lane`: "standard" | "fast" — Architect-set during Sprint Design Review per the seven-check rubric in cleargate-enforcement.md §9. Default "standard". Absent in pre-EPIC-022 stories means standard per the migration default in update_state.mjs.
33
37
  All three fields are v2-only signals. Under v1 sprints they are informational; defaults apply for stories authored before SPRINT-09.
34
38
 
39
+ POST-WRITE BRIEF
40
+ After Writing this document, render a Brief in chat with the following sections,
41
+ mechanically extracted from the document's own structure:
42
+
43
+ - Prior work ← cleargate-wiki-query result (cite [[IDs]] or write "none found")
44
+ - Summary ← §1.1 User Story
45
+ - Open Questions ← §1.4 Open Questions
46
+ - Edge Cases ← §2.1 Gherkin error scenarios
47
+ - Risks ← §1.5 Risks
48
+ - Ambiguity ← bottom-of-doc ambiguity gate block
49
+
50
+ Halt for human review. When ambiguity reaches 🟢, proceed to call cleargate_push_item.
51
+ Do NOT ask separately for push confirmation — Brief approval covers it.
52
+
35
53
  Do NOT output these instructions.
36
54
  </instructions>
37
55
 
38
56
  ---
39
57
  story_id: "STORY-{EpicID}-{StoryID}-{StoryName}"
40
58
  parent_epic_ref: "EPIC-{ID}"
59
+ parent_cleargate_id: null # canonical cleargate-id of parent work item; null for top-level
60
+ sprint_cleargate_id: null # canonical cleargate-id of owning sprint; null for off-sprint items
61
+ carry_over: false # set true to skip lifecycle reconciliation at sprint close
41
62
  status: "Draft"
42
63
  ambiguity: "🔴 High"
43
64
  context_source: "PROPOSAL-{ID}.md"
@@ -88,6 +109,35 @@ As a {Persona}, I want to {Action}, so that {Benefit}.
88
109
  ### 1.3 Out of Scope
89
110
  {What this story explicitly does NOT do.}
90
111
 
112
+ ### 1.4 Open Questions
113
+
114
+ > Resolve every entry before flipping ambiguity to 🟢. Each entry pairs a question with a recommended answer.
115
+
116
+ - **Question:** {edge case, contradiction, or missing detail surfaced during drafting}
117
+ - **Recommended:** {agent's proposed answer}
118
+ - **Human decision:** {populated during Brief review}
119
+
120
+ ### 1.5 Risks
121
+
122
+ > Risks specific to this Story (cross-story risks belong in the milestone plan).
123
+
124
+ - **Risk:** {what could go wrong}
125
+ - **Mitigation:** {agent's proposed mitigation}
126
+
127
+ ### 1.6 Existing Surfaces
128
+
129
+ > L1 reuse audit. List source-tree implementations the request could extend. Cite file:line.
130
+
131
+ - **Surface:** `path/to/file.ext:NN` — {what it does}
132
+ - **Coverage of this requirement:** {≥80% / partial / none — and why}
133
+
134
+ ### 1.7 Why not simpler?
135
+
136
+ > L2 / L3 right-size + justify-complexity. Answer both.
137
+
138
+ - **Smallest existing surface that could carry this:** {citation or "none — net-new abstraction required"}
139
+ - **Why isn't extension / parameterization / config sufficient?** {one paragraph}
140
+
91
141
  ## 2. The Truth (Executable Tests)
92
142
 
93
143
  ### 2.1 Acceptance Criteria (Gherkin)
@@ -114,7 +164,7 @@ Feature: {Story Name}
114
164
 
115
165
  ### 3.1 Context & Files
116
166
 
117
- > **v2 gate input:** under v2 execution mode, this table is a pre-commit gate input (protocol §20). Every file staged in this story's commit must appear in the Value column, or be covered by `.cleargate/scripts/surface-whitelist.txt`. Non-path rows (e.g. "Mirrors", "New Files Needed: Yes/No") are ignored by the parser.
167
+ > **v2 gate input:** under v2 execution mode, this table is a pre-commit gate input (cleargate-enforcement.md §6). Every file staged in this story's commit must appear in the Value column, or be covered by `.cleargate/scripts/surface-whitelist.txt`. Non-path rows (e.g. "Mirrors", "New Files Needed: Yes/No") are ignored by the parser.
118
168
 
119
169
  | Item | Value |
120
170
  |---|---|
@@ -150,7 +200,12 @@ Feature: {Story Name}
150
200
  ## ClearGate Ambiguity Gate (🟢 / 🟡 / 🔴)
151
201
  **Current Status: 🔴 High Ambiguity**
152
202
 
203
+ *Evaluate each criterion against its literal text. If you substituted an interpretation, leave the box unchecked and surface the substitution in the Brief.*
204
+
153
205
  Requirements to pass to Green (Ready for Execution):
154
206
  - [ ] Gherkin scenarios completely cover all detailed requirements in §1.2.
155
207
  - [ ] Implementation Guide (§3) maps to specific, verified file paths from the approved proposal.
156
208
  - [ ] No "TBDs" exist anywhere in the specification or technical logic.
209
+ - [ ] §1.6 Existing Surfaces cites at least one source-tree path or explicitly states "none — net-new."
210
+ - [ ] §1.7 Why not simpler? has both sub-bullets answered (no "TBD" / no "{}").
211
+
@@ -7,32 +7,47 @@ This file is the content `cleargate init` injects into a downstream user's `CLAU
7
7
  <!-- CLEARGATE:START -->
8
8
  ## 🔄 ClearGate Planning Framework
9
9
 
10
- This repository uses **ClearGate** — a standalone planning framework for AI coding agents. ClearGate scaffolds *how work is planned* (proposals → epics → stories → sprints) and defines a four-agent loop for execution. ClearGate does not run builds, tests, or deployments; execution tooling remains the target repo's own.
10
+ This repository uses **ClearGate** — a standalone planning framework for AI coding agents. ClearGate scaffolds *how work is planned* (initiatives → epics → stories → sprints) and defines a four-agent loop for execution. ClearGate does not run builds, tests, or deployments; execution tooling remains the target repo's own.
11
11
 
12
12
  **Session-start orientation (read in this order):**
13
13
  1. `.cleargate/wiki/index.md` — compiled awareness layer (~3k tokens). Lists active sprint, in-flight items, recent shipments, open gates, planned work, and topic synthesis pages. **Read this first** to know what exists before grepping raw files. If absent, run `cleargate wiki build`.
14
14
  2. `.cleargate/knowledge/cleargate-protocol.md` — delivery protocol (non-negotiable rules).
15
15
  3. `.cleargate/FLASHCARD.md` — lessons tagged by topic (`#schema`, `#auth`, etc.). Grep for your area before starting.
16
+ 4. `.cleargate/knowledge/cleargate-enforcement.md` — hook-enforced rules (worktree mechanics, file-surface contract, lifecycle reconciler, lane rubric, doctor exit codes, etc.). Read only when a CLI hook surfaces an error or when triaging a v2-mode question.
16
17
 
17
18
  **Triage first, draft second.** Every user request gets classified (Epic / Story / CR / Bug / Pull / Push) *before* any drafting. If the type is ambiguous, ask ONE targeted question — do not guess.
18
19
 
19
- **Duplicate check before drafting.** Before drafting a Proposal or work item, grep `.cleargate/delivery/archive/` + `.cleargate/FLASHCARD.md` for similar past work. If you find overlap, surface it as a one-liner (*"This is very close to STORY-003-05 shipped in SPRINT-01 are you extending it or redoing it?"*) instead of drafting a duplicate.
20
+ **Sprint execution.** When a sprint is active, the orchestration playbook lives at `.claude/skills/sprint-execution/SKILL.md` load it before dispatching any execution agent (Architect / Developer / QA / Reporter). The skill is the canonical four-agent-loop spec; the always-on CLAUDE.md keeps only the halt-rules and the load-skill contract.
20
21
 
21
- **Halt at gates.** You halt at Gate 1 (Proposal approval) and Gate 2 (Ambiguity resolution) and wait for explicit human sign-off. You never call `cleargate_push_item` without `approved: true` (hard reject) and explicit human confirmation. Readiness gates (`cached_gate_result.pass`) are advisory by default the push proceeds and the item body receives an `[advisory: gate_failed — <criteria>]` prefix; opt into hard-reject via `STRICT_PUSH_GATES=true` on the MCP server.
22
+ **Skill auto-load directive.** When the SessionStart banner emits `Load skill: <name>`, invoke the Skill tool to load it before continuing. Claude Code's description-match auto-load is advisory; this rule is the contract.
23
+
24
+ **Codebase is source of truth.** Wiki, memory, and `context_source` are derived caches. On conflict between cache and code, the code wins; the cache rebuilds. Before stating that a capability exists or doesn't exist, grep the code.
25
+
26
+ **Duplicate check before drafting.** Before Writing any new file under `.cleargate/delivery/pending-sync/`, dispatch the `cleargate-wiki-query` subagent with the request topic. Record the result (`[[IDs]]` of related prior work, or `none found`) on a `Prior work:` line in the Brief — this is auditable evidence the check ran. Then grep `.cleargate/delivery/archive/` + `.cleargate/FLASHCARD.md` for residual hits the wiki may have missed (raw items not yet ingested). If the request names an integration, feature, or capability, also grep the source tree for existing implementations and cite findings in `## Existing Surfaces`. If you find overlap, surface it as a one-liner (*"This is very close to STORY-003-05 shipped in SPRINT-01 — are you extending it or redoing it?"*) before drafting.
27
+
28
+ **Halt at gates.** You halt at Gate 1 (Initiative approval) and Gate 2 (Ambiguity resolution) and wait for explicit human sign-off. You never call `cleargate_push_item` without `approved: true` (hard reject) and explicit human confirmation. Readiness gates (`cached_gate_result.pass`) are advisory by default — the push proceeds and the item body receives an `[advisory: gate_failed — <criteria>]` prefix; opt into hard-reject via `STRICT_PUSH_GATES=true` on the MCP server.
29
+
30
+ **Sprint mode.** Read `execution_mode:` in the active sprint's frontmatter before spawning Developer/QA. `v1` = advisory; `v2` = enforce the rules in `cleargate-enforcement.md`. Default `v1`.
31
+
32
+ **Ambiguity Gate criteria are evaluated literally.** Each `[ ]` box in a work-item's Ambiguity Gate footer must be evaluated against the literal criterion text, not against your interpretation of its intent. If a criterion is not met but you believe the human's intent is satisfied, leave the box unchecked, say so explicitly in the Brief, and ask. Do not substitute "in spirit" satisfaction for literal satisfaction. The gate exists specifically to catch the case where you are about to declare 🟢 by interpretive leap.
33
+
34
+ **Brief is the universal pre-push handshake.** Every work-item template's `<instructions>` block tells you to render a Brief in chat after Writing the document — Summary / Open Questions / Edge Cases / Risks / Ambiguity. Halt for human review. When ambiguity reaches 🟢, push via `cleargate_push_item` automatically — the same approval covers Gate 1 and the push.
35
+
36
+ **Boundary gates (CR-017).** `cleargate sprint init` runs the decomposition gate; `close_sprint.mjs` runs the lifecycle reconciler. Both block in v2.
37
+
38
+ **Sprint close is Gate-4-class (CR-019).** Run `close_sprint.mjs` with no flags first; surface the prompt verbatim; halt. Never pass `--assume-ack` autonomously. Pre-close enforces Steps 2.7 (no leftover worktrees) + 2.8 (sprint branch merged to main) under v2; failure halts close. Post-close prints a 6-item handoff list (Step 8) summarizing commits, merge state, wiki ingest, flashcards, artifacts, and next-sprint preflight.
22
39
 
23
40
  **Drafting work items:**
24
- - Use the templates in `.cleargate/templates/` (`proposal.md`, `epic.md`, `story.md`, `CR.md`, `Bug.md`, `Sprint Plan Template.md`, `initiative.md`).
41
+ - Use the templates in `.cleargate/templates/` (`epic.md`, `story.md`, `CR.md`, `Bug.md`, `Sprint Plan Template.md`, `initiative.md`).
25
42
  - Save drafts to `.cleargate/delivery/pending-sync/{TYPE}-{ID}-{Name}.md`.
26
43
  - After `cleargate_push_item` returns a Remote ID, update the frontmatter AND move the file to `.cleargate/delivery/archive/` — these two happen atomically, never one without the other.
27
44
  - **Story granularity.** When decomposing an epic into stories, run the Granularity Rubric at the top of `story.md`. If a candidate story trips any signal (unrelated goals joined, >5 Gherkin scenarios, subsystems span, L4 complexity), emit two stories with consecutive IDs instead. Splits and merges are free at decomposition time — no remote IDs exist yet.
28
45
 
29
- **Four-agent loop (roles in `.claude/agents/`):**
30
- - `architect.md` — one plan per milestone; no production code.
31
- - `developer.md` one Story end-to-end; one commit per Story; runs typecheck + tests before commit.
32
- - `qa.md` — independent verification gate; re-runs checks; never commits, never edits.
33
- - `reporter.md` — one sprint retrospective at sprint end; synthesizes token ledger + git log + flashcards into `REPORT.md`.
46
+ **Initiative Intake.** Stakeholder input arrives via two paths: (1) MCP pull — call `cleargate_pull_initiative` with the remote ID; the tool writes `pending-sync/INITIATIVE-NNN_*.md` automatically; read the result and present a Brief. (2) Manual paste — human pastes the text; triage it, write `pending-sync/INITIATIVE-NNN_*.md` using `templates/initiative.md`, present a Brief. In both cases, after Gate 1 the file moves to `archive/` stamped with `triaged_at:` and `spawned_items:`.
47
+
48
+ **State-aware surface.** At session start, `cleargate doctor --session-start` (invoked by the SessionStart hook) emits one banner line before any other output: `ClearGate state: pre-member — local planning enabled, sync requires join.` OR `ClearGate state: member (project: <project_id>) — full surface enabled.` In **pre-member** state (no valid join token on disk), only local-planning commands are reachable: `init`, `join`, `whoami`, `wiki *`, `gate *`, `stamp`, `doctor`, `scaffold-lint`, `sprint *`, `story *`, `state *`, `upgrade`, `uninstall`. Commands `push`, `pull`, `sync`, `sync-log`, `conflicts`, and `admin *` (except `admin login`) require membership and exit 2 with a redirect: `Run: cleargate join <invite-url>`. If the SessionStart banner says `pre-member`, do not suggest push/pull/sync to the user — instead ask for an invite URL and direct them to `cleargate join`.
34
49
 
35
- **Conversational style.** Keep replies terse. Details live in the work-item file and `REPORT.md`, not in chat. State results and next steps; skip narration of your own thought process.
50
+ **Conversational style.** Keep replies terse. Details live in the work-item file and `REPORT.md`, not in chat. State results and next steps; skip narration of your own thought process. After Writing or Editing any file under `.cleargate/delivery/**`, briefly note the ingest result if the PostToolUse hook surfaced one — one short sentence (`✅ ingested as <bucket>/<id>.md` / `⚠️ gate failed: <criterion>` / `🔴 ingest error — see .cleargate/hook-log/gate-check.log`). Do not narrate when nothing fired (skip-excluded paths). This is conversational confirmation, not retry logic.
36
51
 
37
52
  **Support infrastructure.** Flashcard protocol: `.claude/skills/flashcard/SKILL.md`. Token-ledger hook: `.claude/hooks/token-ledger.sh`, wired via `.claude/settings.json` (SubagentStop) — auto-logs agent cost per sprint for the Reporter.
38
53
 
@@ -41,4 +56,9 @@ This repository uses **ClearGate** — a standalone planning framework for AI co
41
56
  **Project overrides.** Content OUTSIDE this `<!-- CLEARGATE:START -->...<!-- CLEARGATE:END -->` block takes precedence where it conflicts with ClearGate defaults.
42
57
 
43
58
  **Scope reminder.** ClearGate is a *planning* framework. It scaffolds how work gets planned and how the four-agent loop runs. It does not replace your project's build system, CI, test runner, or deployment tooling.
59
+
60
+ **Guardrails for the conversational agent:**
61
+ - Sprint close requires explicit human ack. Run close_sprint.mjs without flags first; surface the "re-run with --assume-ack" prompt verbatim and halt. Never pass --assume-ack yourself — that flag is reserved for automated tests.
62
+
63
+ **Doc & metadata refresh on close.** During Gate 4 ack, read `.cleargate/sprint-runs/<id>/.doc-refresh-checklist.md` (generated by `prep_doc_refresh.mjs`) and apply or punt each `- [ ]` item per the canonical list at `.cleargate/knowledge/sprint-closeout-checklist.md`. Items already marked `- [x]` indicate "no changes detected, skip."
44
64
  <!-- CLEARGATE:END -->
@@ -1,24 +1,31 @@
1
1
  {
2
- "cleargate_version": "0.8.2",
3
- "generated_at": "2026-04-27T09:39:12.477Z",
2
+ "cleargate_version": "0.11.0",
3
+ "generated_at": "2026-05-04T21:55:12.920Z",
4
4
  "files": [
5
5
  {
6
6
  "path": ".claude/agents/architect.md",
7
- "sha256": "297020d3344d9122c0ff95e00b436cb83640acbc78377684c04f6af8fb6fbcc4",
7
+ "sha256": "a2d11d6a7f21bce22730ba9076af9ddde44b258082e33aa99fcd57c14ad75f55",
8
+ "tier": "agent",
9
+ "overwrite_policy": "always",
10
+ "preserve_on_uninstall": false
11
+ },
12
+ {
13
+ "path": ".claude/agents/cleargate-wiki-contradict.md",
14
+ "sha256": "1b7ca28889dfa1ab704e05b90179547bee1ae683b68722c99a1daec990e8572b",
8
15
  "tier": "agent",
9
16
  "overwrite_policy": "always",
10
17
  "preserve_on_uninstall": false
11
18
  },
12
19
  {
13
20
  "path": ".claude/agents/cleargate-wiki-ingest.md",
14
- "sha256": "6dcd13bb9c8daeac083e2e2f34eebc56dbd3a9f3e6e0025bc3db558937fcff36",
21
+ "sha256": "4b14aed168d30807a1325de8c065bb57e2bc66271a0cffc71a21481c227b453b",
15
22
  "tier": "agent",
16
23
  "overwrite_policy": "always",
17
24
  "preserve_on_uninstall": false
18
25
  },
19
26
  {
20
27
  "path": ".claude/agents/cleargate-wiki-lint.md",
21
- "sha256": "97d930aa906e350ce7975bc0cf17cd6870aea2b636ef482b33ffc638cdba931a",
28
+ "sha256": "42067fd728e64ac1ff1ace5822b8f8c3ddf1ba70fd0fbddf0e8cb19d5d699e77",
22
29
  "tier": "agent",
23
30
  "overwrite_policy": "always",
24
31
  "preserve_on_uninstall": false
@@ -32,21 +39,28 @@
32
39
  },
33
40
  {
34
41
  "path": ".claude/agents/developer.md",
35
- "sha256": "602b8ef4ca0f8bc11472a612744535d1a6794533ceaf97587d5d421c4fc49b77",
42
+ "sha256": "36f75fe9f8dc8412eb22706dfd021f5db5694c81d73e0c938e701a83c0149126",
43
+ "tier": "agent",
44
+ "overwrite_policy": "always",
45
+ "preserve_on_uninstall": false
46
+ },
47
+ {
48
+ "path": ".claude/agents/devops.md",
49
+ "sha256": "65e84275b7a6480be2144250cc00573e8c26840abed98768ce4c168d594c7f8e",
36
50
  "tier": "agent",
37
51
  "overwrite_policy": "always",
38
52
  "preserve_on_uninstall": false
39
53
  },
40
54
  {
41
55
  "path": ".claude/agents/qa.md",
42
- "sha256": "e753d294d6060ace626878220db02a0595126bc7baa52526e5d1576b163f04d0",
56
+ "sha256": "c6fab6b64acc717a6bb5618531e6568010b3aeb10a98e33ba10b8dde45f5becb",
43
57
  "tier": "agent",
44
58
  "overwrite_policy": "always",
45
59
  "preserve_on_uninstall": false
46
60
  },
47
61
  {
48
62
  "path": ".claude/agents/reporter.md",
49
- "sha256": "c2f6e9db07c737ada4c2f76497d08e0f881bc8f0fceb073b9479753d33c4ecf4",
63
+ "sha256": "36558f7f90e2e52192df88f243631735a880b7d371e6df17025933151a825c56",
50
64
  "tier": "agent",
51
65
  "overwrite_policy": "always",
52
66
  "preserve_on_uninstall": false
@@ -60,7 +74,7 @@
60
74
  },
61
75
  {
62
76
  "path": ".claude/hooks/pre-commit-surface-gate.sh",
63
- "sha256": "a58f3b3c3dbb615a14bf6e2355f5122e80a5cb1e8ef9442648324f3124723ee3",
77
+ "sha256": "6741422cd8ca75b45e26bd0e9cb54126ad9e933f763c9094ceba6b84794b761a",
64
78
  "tier": "hook",
65
79
  "overwrite_policy": "always",
66
80
  "preserve_on_uninstall": false
@@ -86,30 +100,37 @@
86
100
  "overwrite_policy": "always",
87
101
  "preserve_on_uninstall": false
88
102
  },
103
+ {
104
+ "path": ".claude/hooks/pre-tool-use-task.sh",
105
+ "sha256": "79fdd30e3f301cb89757aa2279a5fb8cc3a91493b62d5c801517853500368e7f",
106
+ "tier": "hook",
107
+ "overwrite_policy": "always",
108
+ "preserve_on_uninstall": false
109
+ },
89
110
  {
90
111
  "path": ".claude/hooks/session-start.sh",
91
- "sha256": "77c206eeaa5d460f9e751244f25ff09089578ad4d044487cbcff8b3e1d78582f",
112
+ "sha256": "b266a5567cc84c02d041e570569962c003daaa69b6aee244173e740dedbf4ee2",
92
113
  "tier": "hook",
93
114
  "overwrite_policy": "pin-aware",
94
115
  "preserve_on_uninstall": false
95
116
  },
96
117
  {
97
118
  "path": ".claude/hooks/stamp-and-gate.sh",
98
- "sha256": "3488dfea2874e8069453a2fdf40164d2c3fefe9ad7e2453190501391707aee7b",
119
+ "sha256": "2c654dc3a6707d394f782f68d7318410d4acbbcb70c0a9d0d674d966241fc310",
99
120
  "tier": "hook",
100
121
  "overwrite_policy": "pin-aware",
101
122
  "preserve_on_uninstall": false
102
123
  },
103
124
  {
104
125
  "path": ".claude/hooks/token-ledger.sh",
105
- "sha256": "45113b3c3f3a78e350e112665c1aadf74a246bb4ebfe514ea7230d6bd3fa01c1",
126
+ "sha256": "6678f814520c379b3ab055f3a1b98c92f631fd415ae24752d45aa8bee058c29c",
106
127
  "tier": "hook",
107
128
  "overwrite_policy": "always",
108
129
  "preserve_on_uninstall": false
109
130
  },
110
131
  {
111
132
  "path": ".claude/settings.json",
112
- "sha256": "539345bf59249e645a2b5faeb9cc4f44deb657ac77e9833ef74f7e4a1f4c6e3b",
133
+ "sha256": "8c3c8fe2bd2a2c23e3faa56fad94352c66a11646d12a4ca79ff95d578e589ec0",
113
134
  "tier": "cli-config",
114
135
  "overwrite_policy": "merge-3way",
115
136
  "preserve_on_uninstall": false
@@ -121,6 +142,13 @@
121
142
  "overwrite_policy": "always",
122
143
  "preserve_on_uninstall": false
123
144
  },
145
+ {
146
+ "path": ".claude/skills/sprint-execution/SKILL.md",
147
+ "sha256": "877fabf8fcc682d9ba55421e6ba8c2a4ccf2b84a83d66e77dedc418b5aa47a3a",
148
+ "tier": "skill",
149
+ "overwrite_policy": "always",
150
+ "preserve_on_uninstall": false
151
+ },
124
152
  {
125
153
  "path": ".cleargate/FLASHCARD.md",
126
154
  "sha256": null,
@@ -128,86 +156,303 @@
128
156
  "overwrite_policy": "skip",
129
157
  "preserve_on_uninstall": true
130
158
  },
159
+ {
160
+ "path": ".cleargate/knowledge/cleargate-enforcement.md",
161
+ "sha256": "11ff8004145d627ce3885976304797465e07ea80f2e37001304afa9087852e7f",
162
+ "tier": "protocol",
163
+ "overwrite_policy": "merge-3way",
164
+ "preserve_on_uninstall": false
165
+ },
131
166
  {
132
167
  "path": ".cleargate/knowledge/cleargate-protocol.md",
133
- "sha256": "a3d02a7e6660403370568f3e412990a6e44394e65040ce21adc5f8e4269946ca",
168
+ "sha256": "50e999717b9c9e1c11638f3f2433f413d177ed8ddf3cffdbb20b50c8807b1fc5",
169
+ "tier": "protocol",
170
+ "overwrite_policy": "merge-3way",
171
+ "preserve_on_uninstall": false
172
+ },
173
+ {
174
+ "path": ".cleargate/knowledge/mid-sprint-triage-rubric.md",
175
+ "sha256": "170f762b427074a84c183a91fb65d1d6408650b7746de3bbc460d21194bda30a",
134
176
  "tier": "protocol",
135
177
  "overwrite_policy": "merge-3way",
136
178
  "preserve_on_uninstall": false
137
179
  },
138
180
  {
139
181
  "path": ".cleargate/knowledge/readiness-gates.md",
140
- "sha256": "d7a79a50e3cb5fd42735b017d3d88dff0fa443444951e717013e423770bad87b",
182
+ "sha256": "10cb46cdaf264f8aa7c3841d12101bfad422a45f36c758be5327b0e4009a46a0",
141
183
  "tier": "protocol",
142
184
  "overwrite_policy": "merge-3way",
143
185
  "preserve_on_uninstall": false
144
186
  },
187
+ {
188
+ "path": ".cleargate/knowledge/sprint-closeout-checklist.md",
189
+ "sha256": "d44f57445188bdefb18b39c6c121a1f52d32d9ca6122df91e54855e87fc2233e",
190
+ "tier": "protocol",
191
+ "overwrite_policy": "merge-3way",
192
+ "preserve_on_uninstall": false
193
+ },
194
+ {
195
+ "path": ".cleargate/scripts/assert_story_files.mjs",
196
+ "sha256": "74db9e12008492e40c77cc9bffac4c689621ac5eededf9b342a87e45f918f003",
197
+ "tier": "script",
198
+ "overwrite_policy": "always",
199
+ "preserve_on_uninstall": false
200
+ },
201
+ {
202
+ "path": ".cleargate/scripts/close_sprint.mjs",
203
+ "sha256": "1807e5b27f1501476c9dec41cbb350c432d2894cb0727d8da0c860ad3f9181c7",
204
+ "tier": "script",
205
+ "overwrite_policy": "always",
206
+ "preserve_on_uninstall": false
207
+ },
208
+ {
209
+ "path": ".cleargate/scripts/constants.mjs",
210
+ "sha256": "6f3fd11046bfd3d7f6b90b9ca70e02612a5db05ca21f2f2db3dce4473e720ce4",
211
+ "tier": "script",
212
+ "overwrite_policy": "always",
213
+ "preserve_on_uninstall": false
214
+ },
215
+ {
216
+ "path": ".cleargate/scripts/dedupe_frontmatter.mjs",
217
+ "sha256": "6bf2816399cad2ab6f8f770de5eb920c3547b6fad9295c81f08aa6a4f894ef21",
218
+ "tier": "script",
219
+ "overwrite_policy": "always",
220
+ "preserve_on_uninstall": false
221
+ },
222
+ {
223
+ "path": ".cleargate/scripts/file_surface_diff.sh",
224
+ "sha256": "a1c250ba35face9124183273fb04d45fdd4f8e43f405be4a765aeb58582753e9",
225
+ "tier": "script",
226
+ "overwrite_policy": "always",
227
+ "preserve_on_uninstall": false
228
+ },
229
+ {
230
+ "path": ".cleargate/scripts/gate-checks.json",
231
+ "sha256": "9c520e63ac582289b6905a1c5704326590923eeef90d1e02801d1a57b4262877",
232
+ "tier": "script",
233
+ "overwrite_policy": "always",
234
+ "preserve_on_uninstall": false
235
+ },
236
+ {
237
+ "path": ".cleargate/scripts/init_gate_config.sh",
238
+ "sha256": "47f4a9c6609d22d66acc9ccbceb1a144ad590d5ed17159ae5fb9811002a087e8",
239
+ "tier": "script",
240
+ "overwrite_policy": "always",
241
+ "preserve_on_uninstall": false
242
+ },
243
+ {
244
+ "path": ".cleargate/scripts/init_sprint.mjs",
245
+ "sha256": "80d532754b0b27bb274aca4e30a0e9a208f2528d079c24d4e319de2e429cd268",
246
+ "tier": "script",
247
+ "overwrite_policy": "always",
248
+ "preserve_on_uninstall": false
249
+ },
250
+ {
251
+ "path": ".cleargate/scripts/lib/report-filename.mjs",
252
+ "sha256": "c26e2c0557f5e33d84058fc34db5c3258e5050093eabeb09fb22d067e458a8e2",
253
+ "tier": "script",
254
+ "overwrite_policy": "always",
255
+ "preserve_on_uninstall": false
256
+ },
257
+ {
258
+ "path": ".cleargate/scripts/pre_gate_common.sh",
259
+ "sha256": "fd9af416b6db636901354fca64e60adcce9d4ce71dac96f2d718562a4bdb27e0",
260
+ "tier": "script",
261
+ "overwrite_policy": "always",
262
+ "preserve_on_uninstall": false
263
+ },
264
+ {
265
+ "path": ".cleargate/scripts/pre_gate_runner.sh",
266
+ "sha256": "7f221089a353391f6e917c03a6813a26b6650a8b4e7e1c6a2bd845fa4ae081ca",
267
+ "tier": "script",
268
+ "overwrite_policy": "always",
269
+ "preserve_on_uninstall": false
270
+ },
271
+ {
272
+ "path": ".cleargate/scripts/prefill_report.mjs",
273
+ "sha256": "bee417d96150410f78262a7fb4f485bf2f2e4191b8818085bdf60a664ebf7d62",
274
+ "tier": "script",
275
+ "overwrite_policy": "always",
276
+ "preserve_on_uninstall": false
277
+ },
278
+ {
279
+ "path": ".cleargate/scripts/prep_doc_refresh.mjs",
280
+ "sha256": "822f887fc6c2754d2314f72b8ae62e1f20707b350b04c9867f9fd65068b21d79",
281
+ "tier": "script",
282
+ "overwrite_policy": "always",
283
+ "preserve_on_uninstall": false
284
+ },
285
+ {
286
+ "path": ".cleargate/scripts/prep_qa_context.mjs",
287
+ "sha256": "68d69678f72fd6aa64bcf359fbd74f9c5b6b4fe598374f13c1261148b9907cab",
288
+ "tier": "script",
289
+ "overwrite_policy": "always",
290
+ "preserve_on_uninstall": false
291
+ },
292
+ {
293
+ "path": ".cleargate/scripts/run_script.sh",
294
+ "sha256": "f2bd931d3b7bb4d30f5da9c116714345480163e9afb4c244c1a1c074410c15d0",
295
+ "tier": "script",
296
+ "overwrite_policy": "always",
297
+ "preserve_on_uninstall": false
298
+ },
299
+ {
300
+ "path": ".cleargate/scripts/sprint_trends.mjs",
301
+ "sha256": "58732d158dcffca71fdc935200bbf9f8f14058cec7e05590345c335151dfa156",
302
+ "tier": "script",
303
+ "overwrite_policy": "always",
304
+ "preserve_on_uninstall": false
305
+ },
306
+ {
307
+ "path": ".cleargate/scripts/state.schema.json",
308
+ "sha256": "d4e1c076764e5dc0573805502b3164d3b7d4977871cb67f5eca8a5035aeee37d",
309
+ "tier": "script",
310
+ "overwrite_policy": "always",
311
+ "preserve_on_uninstall": false
312
+ },
313
+ {
314
+ "path": ".cleargate/scripts/suggest_improvements.mjs",
315
+ "sha256": "62e71e7bf43abb6f015290f6ff3e06f15fb097682ddb95dbdf9532922d27925a",
316
+ "tier": "script",
317
+ "overwrite_policy": "always",
318
+ "preserve_on_uninstall": false
319
+ },
320
+ {
321
+ "path": ".cleargate/scripts/surface-whitelist.txt",
322
+ "sha256": "c1c14349265d741570dc4b0e61501c2a9e898a25cefad93911ef1298cf4d74c7",
323
+ "tier": "script",
324
+ "overwrite_policy": "always",
325
+ "preserve_on_uninstall": false
326
+ },
327
+ {
328
+ "path": ".cleargate/scripts/test_ratchet.mjs",
329
+ "sha256": "429f6034ad6946f906c9068e9604d5348898687af0cf56badcae673b04369c5b",
330
+ "tier": "script",
331
+ "overwrite_policy": "always",
332
+ "preserve_on_uninstall": false
333
+ },
334
+ {
335
+ "path": ".cleargate/scripts/test/test_assert_story_files.sh",
336
+ "sha256": "6aace15a0de4d07b4b9e7454d2b38e266b7a80e265281135a050bd9f6be83aab",
337
+ "tier": "script",
338
+ "overwrite_policy": "always",
339
+ "preserve_on_uninstall": false
340
+ },
341
+ {
342
+ "path": ".cleargate/scripts/test/test_file_surface.sh",
343
+ "sha256": "ada0e9583717a38bd912c0af16bb0e11c0b719a96df6dd511c879f0cf367788d",
344
+ "tier": "script",
345
+ "overwrite_policy": "always",
346
+ "preserve_on_uninstall": false
347
+ },
348
+ {
349
+ "path": ".cleargate/scripts/test/test_flashcard_gate.sh",
350
+ "sha256": "40fb023b0db1556295b92858b303ba90745ef89c3131bc760232e5cd8ebe7815",
351
+ "tier": "script",
352
+ "overwrite_policy": "always",
353
+ "preserve_on_uninstall": false
354
+ },
355
+ {
356
+ "path": ".cleargate/scripts/test/test_prep_qa_context.sh",
357
+ "sha256": "fd198bbc5d1faeaebd18ac72e5bcc2d84f931f035175bd51048ee04dcbd7ae0d",
358
+ "tier": "script",
359
+ "overwrite_policy": "always",
360
+ "preserve_on_uninstall": false
361
+ },
362
+ {
363
+ "path": ".cleargate/scripts/test/test_test_ratchet.sh",
364
+ "sha256": "bfa13cb347824a525b636538d330a3ee3765f7908707f94149f2ffe69439729b",
365
+ "tier": "script",
366
+ "overwrite_policy": "always",
367
+ "preserve_on_uninstall": false
368
+ },
369
+ {
370
+ "path": ".cleargate/scripts/update_state.mjs",
371
+ "sha256": "19eb2a3f7b0cc027a2805a49ba14029bcb70dbc8e98299375a375a6fe4adf2c5",
372
+ "tier": "script",
373
+ "overwrite_policy": "always",
374
+ "preserve_on_uninstall": false
375
+ },
376
+ {
377
+ "path": ".cleargate/scripts/validate_bounce_readiness.mjs",
378
+ "sha256": "e4c6bead578a75a4f62fddbc1bccd40e92cc64f6136b3f893bb7cf50bacbd6ff",
379
+ "tier": "script",
380
+ "overwrite_policy": "always",
381
+ "preserve_on_uninstall": false
382
+ },
383
+ {
384
+ "path": ".cleargate/scripts/validate_state.mjs",
385
+ "sha256": "ee3e8c0aeadb9a4e182d2a061cd992b6751e5bf067e0729b88da58582c67dbf1",
386
+ "tier": "script",
387
+ "overwrite_policy": "always",
388
+ "preserve_on_uninstall": false
389
+ },
390
+ {
391
+ "path": ".cleargate/scripts/write_dispatch.sh",
392
+ "sha256": "abdcaf09b09251f3ab42cb7ec8bdedc5806fd0eb337578f55043bffb158d8128",
393
+ "tier": "script",
394
+ "overwrite_policy": "always",
395
+ "preserve_on_uninstall": false
396
+ },
145
397
  {
146
398
  "path": ".cleargate/templates/Bug.md",
147
- "sha256": "54660457a8b7f5c9f1a286993e2d83d46fef880a3d65086421d8db815a9c01ec",
399
+ "sha256": "570112e3a60856c891652837307fc6f296cc39acc20451f8bde62da0fe033026",
148
400
  "tier": "template",
149
401
  "overwrite_policy": "merge-3way",
150
402
  "preserve_on_uninstall": false
151
403
  },
152
404
  {
153
405
  "path": ".cleargate/templates/CR.md",
154
- "sha256": "e4cff0314217d649177a3dd1603c510d2f5246c1cf297baaa91d5941c1eedc91",
406
+ "sha256": "ab111792dc79fd5181b44a63c76ac696fa4e456161ac44e2c4d0dc609e8dd904",
155
407
  "tier": "template",
156
408
  "overwrite_policy": "merge-3way",
157
409
  "preserve_on_uninstall": false
158
410
  },
159
411
  {
160
412
  "path": ".cleargate/templates/epic.md",
161
- "sha256": "fa0e5bf85b50bee11d38646b2606652999ac2ff7c649810408c35ff25d7a025c",
413
+ "sha256": "fd3b54de89befe7c5bcef65e2fa5550fc7f371d55c8f15143ae73d84f3ae6d36",
162
414
  "tier": "template",
163
415
  "overwrite_policy": "merge-3way",
164
416
  "preserve_on_uninstall": false
165
417
  },
166
418
  {
167
419
  "path": ".cleargate/templates/hotfix.md",
168
- "sha256": "93c6690a23bcfca98697048b7f1c2c5c76ee16c2d295a53ced8471e8c4eb78d3",
420
+ "sha256": "b75dd154c156e68a44ae01b85eff7ec16f54050e4fe7eb71f59e17d87c03a298",
169
421
  "tier": "template",
170
422
  "overwrite_policy": "merge-3way",
171
423
  "preserve_on_uninstall": false
172
424
  },
173
425
  {
174
426
  "path": ".cleargate/templates/initiative.md",
175
- "sha256": "9bf4a5a5ff7af0938ff48d5eaa182f227195d101ba9de4d56123b4fc211b8cac",
176
- "tier": "template",
177
- "overwrite_policy": "merge-3way",
178
- "preserve_on_uninstall": false
179
- },
180
- {
181
- "path": ".cleargate/templates/proposal.md",
182
- "sha256": "227907f5de028453168c487e9c4ec4d4acd578298d13d658f7a7b63ef76dc23d",
427
+ "sha256": "28680917228e5d9887c8820193cc21bfecc6aad3bc0658e8a59087adf63551fd",
183
428
  "tier": "template",
184
429
  "overwrite_policy": "merge-3way",
185
430
  "preserve_on_uninstall": false
186
431
  },
187
432
  {
188
433
  "path": ".cleargate/templates/Sprint Plan Template.md",
189
- "sha256": "583f71c76c0b3c8cb219183f5881250219cec2719c909abf4d3069beed8cad51",
434
+ "sha256": "8c359d0d7d06706cbae4c7c28777229ca3f8c4e1cc819795b4d39b349acbe9c1",
190
435
  "tier": "template",
191
436
  "overwrite_policy": "merge-3way",
192
437
  "preserve_on_uninstall": false
193
438
  },
194
439
  {
195
440
  "path": ".cleargate/templates/sprint_context.md",
196
- "sha256": "56c8c401b56d4c654dc41a19bd524f1b8860a8006cc3cd90e784d101c3d7721a",
441
+ "sha256": "82a95b8e5e9a5842a9dcad68bc3ed7405819a616d13d616cdb80083c32cc1fc3",
197
442
  "tier": "template",
198
443
  "overwrite_policy": "merge-3way",
199
444
  "preserve_on_uninstall": false
200
445
  },
201
446
  {
202
447
  "path": ".cleargate/templates/sprint_report.md",
203
- "sha256": "e73126842e219d856d32c4cb72e0a98066ea9ad4993e3f3919f9c8296d73afdf",
448
+ "sha256": "84e32e956eb1e8a9c97be1c346b695df316a9e47e17402f3d6581e3ffdbc4d2d",
204
449
  "tier": "template",
205
450
  "overwrite_policy": "merge-3way",
206
451
  "preserve_on_uninstall": false
207
452
  },
208
453
  {
209
454
  "path": ".cleargate/templates/story.md",
210
- "sha256": "0817454195b1c3ddb7a2559a0295273082fb621cdfd7a77594414876da28c620",
455
+ "sha256": "56d793983614d832e84193d99ee5318c061d2f3ea4f019cefb861c026513cb31",
211
456
  "tier": "template",
212
457
  "overwrite_policy": "merge-3way",
213
458
  "preserve_on_uninstall": false