@open-agent-toolkit/cli 0.3.21 → 0.3.23

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 (130) hide show
  1. package/assets/bundle-metadata.json +1 -1
  2. package/assets/docs/docs-tooling/add-docs-to-a-repo.md +3 -9
  3. package/assets/docs/reference/cli-reference.md +8 -3
  4. package/assets/docs/reference/configuration.md +3 -0
  5. package/assets/docs/reference/oat-directory-structure.md +1 -1
  6. package/assets/docs/reference/project-artifacts.md +141 -2
  7. package/assets/docs/reference/project-state-machine.md +2 -2
  8. package/assets/docs/workflows/advanced/autonomy.md +29 -12
  9. package/assets/docs/workflows/advanced/cursor-cloud.md +20 -6
  10. package/assets/docs/workflows/advanced/workflow-gates.md +9 -0
  11. package/assets/docs/workflows/projects/closeout/closeout-skills.md +24 -5
  12. package/assets/docs/workflows/projects/closeout/retro.md +6 -2
  13. package/assets/docs/workflows/projects/execution/implementation-execution.md +18 -4
  14. package/assets/docs/workflows/projects/execution/index.md +1 -1
  15. package/assets/docs/workflows/projects/execution/picking-up-projects.md +3 -2
  16. package/assets/docs/workflows/projects/execution/project-log.md +100 -11
  17. package/assets/docs/workflows/projects/lifecycle.md +3 -3
  18. package/assets/docs/workflows/projects/reviews/index.md +18 -0
  19. package/assets/public-package-versions.json +4 -4
  20. package/assets/skills/oat-cursor-cloud-projects/SKILL.md +12 -8
  21. package/assets/skills/oat-cursor-cloud-projects/references/cursor-cloud-mechanics.md +63 -2
  22. package/assets/skills/oat-docs/SKILL.md +14 -28
  23. package/assets/skills/oat-docs-analyze/SKILL.md +4 -2
  24. package/assets/skills/oat-docs-analyze/references/legacy-scaffold-checks.md +16 -0
  25. package/assets/skills/oat-docs-apply/SKILL.md +2 -2
  26. package/assets/skills/oat-docs-authoring/SKILL.md +2 -2
  27. package/assets/skills/oat-docs-authoring/references/lifecycle-boundaries.md +1 -2
  28. package/assets/skills/oat-docs-authoring/references/mkdocs-to-oat-fumadocs-refactor-guide.md +73 -0
  29. package/assets/skills/oat-docs-bootstrap/SKILL.md +44 -310
  30. package/assets/skills/oat-project-autonomous/SKILL.md +88 -26
  31. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +1 -1
  32. package/assets/skills/oat-project-brief/SKILL.md +1 -1
  33. package/assets/skills/oat-project-brief/references/brief-contract.md +33 -27
  34. package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +1 -1
  35. package/assets/skills/oat-project-complete/SKILL.md +142 -25
  36. package/assets/skills/oat-project-complete-auto/SKILL.md +4 -4
  37. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +10 -5
  38. package/assets/skills/oat-project-document/SKILL.md +1 -1
  39. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +1 -1
  40. package/assets/skills/oat-project-goal/SKILL.md +63 -15
  41. package/assets/skills/oat-project-goal/references/docs/autonomy-contract.md +1 -1
  42. package/assets/skills/oat-project-implement/SKILL.md +6 -6
  43. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +28 -7
  44. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +10 -5
  45. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +1 -1
  46. package/assets/skills/oat-project-implement/references/phase-execution.md +23 -9
  47. package/assets/skills/oat-project-implement/references/plan-and-resume.md +4 -4
  48. package/assets/skills/oat-project-lite/SKILL.md +1 -1
  49. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +1 -1
  50. package/assets/skills/oat-project-pr-final/SKILL.md +6 -1
  51. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +1 -1
  52. package/assets/skills/oat-project-pr-progress/SKILL.md +6 -1
  53. package/assets/skills/oat-project-quick-start/SKILL.md +1 -1
  54. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +1 -1
  55. package/assets/skills/oat-project-reconcile/SKILL.md +13 -19
  56. package/assets/skills/oat-project-retro/SKILL.md +5 -2
  57. package/assets/skills/oat-project-retro/references/evidence-and-lanes.md +9 -3
  58. package/assets/skills/oat-project-review-provide/SKILL.md +28 -3
  59. package/assets/skills/oat-project-review-receive/SKILL.md +32 -18
  60. package/assets/skills/oat-project-review-receive-remote/SKILL.md +10 -6
  61. package/assets/skills/oat-project-revise/SKILL.md +9 -2
  62. package/assets/skills/oat-project-summary/SKILL.md +166 -37
  63. package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +3 -3
  64. package/assets/templates/docs-app-fuma/docs/contributing.md +6 -0
  65. package/assets/templates/docs-app-fuma/docs/getting-started.md +1 -1
  66. package/assets/templates/docs-app-fuma/next.config.js +5 -1
  67. package/assets/templates/implementation-brief.md +5 -36
  68. package/assets/templates/implementation.md +11 -81
  69. package/assets/templates/project-log.md +2 -31
  70. package/assets/templates/project-retro.md +4 -1
  71. package/assets/templates/summary.md +13 -5
  72. package/dist/commands/config/index.d.ts.map +1 -1
  73. package/dist/commands/config/index.js +44 -1
  74. package/dist/commands/docs/analyze.js +1 -1
  75. package/dist/commands/docs/apply.js +1 -1
  76. package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
  77. package/dist/commands/docs/init/scaffold.js +35 -2
  78. package/dist/commands/project/archive/archive-utils.d.ts +205 -8
  79. package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
  80. package/dist/commands/project/archive/archive-utils.js +708 -44
  81. package/dist/commands/project/archive/index.d.ts.map +1 -1
  82. package/dist/commands/project/archive/index.js +1 -0
  83. package/dist/commands/project/archive/push-runner.d.ts +9 -1
  84. package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
  85. package/dist/commands/project/archive/push-runner.js +56 -18
  86. package/dist/commands/project/archive/sync-runner.d.ts +28 -0
  87. package/dist/commands/project/archive/sync-runner.d.ts.map +1 -1
  88. package/dist/commands/project/archive/sync-runner.js +44 -22
  89. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  90. package/dist/commands/project/complete-state/index.js +45 -0
  91. package/dist/commands/project/dispatch/index.d.ts.map +1 -1
  92. package/dist/commands/project/dispatch/index.js +24 -2
  93. package/dist/commands/project/dispatch/record.d.ts +54 -1
  94. package/dist/commands/project/dispatch/record.d.ts.map +1 -1
  95. package/dist/commands/project/dispatch/record.js +229 -1
  96. package/dist/commands/project/index.d.ts.map +1 -1
  97. package/dist/commands/project/index.js +2 -0
  98. package/dist/commands/project/journal-check/evaluator.d.ts +17 -0
  99. package/dist/commands/project/journal-check/evaluator.d.ts.map +1 -0
  100. package/dist/commands/project/journal-check/evaluator.js +140 -0
  101. package/dist/commands/project/journal-check/index.d.ts +34 -0
  102. package/dist/commands/project/journal-check/index.d.ts.map +1 -0
  103. package/dist/commands/project/journal-check/index.js +163 -0
  104. package/dist/commands/project/journal-check/rules.d.ts +68 -0
  105. package/dist/commands/project/journal-check/rules.d.ts.map +1 -0
  106. package/dist/commands/project/journal-check/rules.js +994 -0
  107. package/dist/commands/project/journal-check/types.d.ts +63 -0
  108. package/dist/commands/project/journal-check/types.d.ts.map +1 -0
  109. package/dist/commands/project/journal-check/types.js +26 -0
  110. package/dist/commands/project/log/append.d.ts +6 -0
  111. package/dist/commands/project/log/append.d.ts.map +1 -1
  112. package/dist/commands/project/log/append.js +114 -6
  113. package/dist/commands/project/log/check.d.ts +23 -1
  114. package/dist/commands/project/log/check.d.ts.map +1 -1
  115. package/dist/commands/project/log/check.js +20 -3
  116. package/dist/commands/project/log/grammar.d.ts +37 -0
  117. package/dist/commands/project/log/grammar.d.ts.map +1 -1
  118. package/dist/commands/project/log/grammar.js +72 -0
  119. package/dist/commands/project/log/rollup.d.ts +87 -1
  120. package/dist/commands/project/log/rollup.d.ts.map +1 -1
  121. package/dist/commands/project/log/rollup.js +257 -5
  122. package/dist/config/oat-config.d.ts +14 -0
  123. package/dist/config/oat-config.d.ts.map +1 -1
  124. package/dist/config/oat-config.js +17 -0
  125. package/dist/config/resolve.d.ts.map +1 -1
  126. package/dist/config/resolve.js +5 -1
  127. package/dist/providers/identity/generic-dispatch-record.d.ts +33 -0
  128. package/dist/providers/identity/generic-dispatch-record.d.ts.map +1 -1
  129. package/dist/providers/identity/generic-dispatch-record.js +60 -1
  130. package/package.json +2 -2
@@ -7,7 +7,7 @@ disable-model-invocation: true
7
7
  user-invocable: true
8
8
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Task
9
9
  metadata:
10
- version: 2.3.21
10
+ version: 2.3.22
11
11
  ---
12
12
 
13
13
  # Quick Start Project
@@ -324,7 +324,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
324
324
  | `oat-project-summary/SKILL.md` | `68c197c44c18 -> NG`; `a8983fec040c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> SUMMARY-01`; `f3e49b727752 -> NG`; `f979b2342d28 -> NG`; `803bf40ec423 -> NG`; `c8fced47ef8e -> NG`; `d7ea1e2a4f5f -> NG`; `5f315ab87cb1 -> NG` |
325
325
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `c264a64398f0 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
326
326
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
327
- | `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `fffe5eea5ebd -> NG`; `e7dc6fdc4eb3 -> COMPLETE-01`; `e5460e437299 -> NG`; `882b61c9096c -> NG`; `9ffa1c752505 -> NG`; `8c5e599f6bac -> NG` |
327
+ | `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `fffe5eea5ebd -> NG`; `e7dc6fdc4eb3 -> COMPLETE-01`; `e5460e437299 -> NG`; `882b61c9096c -> NG`; `9ffa1c752505 -> NG`; `8c5e599f6bac -> NG` |
328
328
  | `oat-project-review-provide/SKILL.md` | `1f4b981cac8b -> NG`; `adaeca152bb2 -> NG`; `2f7c201c3c06 -> NG`; `88f79700afdc -> NG`; `655d61df0a8f -> NG`; `efafde9ef5a0 -> NG`; `d2a3861d6323 -> REVIEWPROVIDE-02`; `65f5b9cf49cd -> REVIEWPROVIDE-04`; `962cb38d246a -> REVIEWPROVIDE-04`; `1a568483ba0b -> REVIEWPROVIDE-04`; `610e27edfe85 -> REVIEWPROVIDE-04`; `bb0096e95c47 -> REVIEWPROVIDE-06`; `55f6357a987d -> REVIEWPROVIDE-06`; `e3c08ecdab17 -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `79c8103e8656 -> NG`; `4fbd78337e33 -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
329
329
  | `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `49ed2780983b -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `1d710fb4cc66 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `92578f7df686 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `594bbf70346c -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `e4c0625439f8 -> REVIEWRECEIVE-04`; `505ad8389c0a -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `e30e06f39281 -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
330
330
  | `oat-project-review-provide/SKILL.md` | `2e794bf4fc4a -> REVIEWPROVIDE-08`; `5441ab977b46 -> REVIEWPROVIDE-08` |
@@ -5,7 +5,7 @@ disable-model-invocation: true
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion
7
7
  metadata:
8
- version: 1.0.6
8
+ version: 1.0.7
9
9
  ---
10
10
 
11
11
  # Reconcile Manual Implementation
@@ -737,34 +737,28 @@ oat_project_state_updated: '{ISO 8601 UTC timestamp}'
737
737
  # may advance to complete after the final review passes.
738
738
  ```
739
739
 
740
- **5f. Append to Implementation Log:**
740
+ **5f. Record the reconciliation session:**
741
741
 
742
- Add a reconciliation session entry to the `## Implementation Log` section:
742
+ Write the reconciliation entry into the owning phase section of
743
+ `implementation.md` (the phase whose task blocks 5d updated), after that
744
+ phase's task blocks and before the next `##` heading. When no single phase
745
+ owns it (unplanned work across phases, or no reconciled task), write it under
746
+ `## Deviations from Plan / Design` instead. Never append it after
747
+ `## References`.
743
748
 
744
749
  ```markdown
745
- ### {today's date}
746
-
747
- **Session Start:** reconciliation
750
+ ### Reconciliation — {today's date}
748
751
 
749
752
  {For each reconciled task:}
750
753
 
751
- - [x] {task_id}: {task_name} - {sha} (reconciled, confidence: {level})
754
+ - {task_id}: {task_name} - {sha} (reconciled, confidence: {level})
752
755
 
753
756
  {For each unplanned entry:}
754
757
 
755
- - [x] unplanned: {summary} - {sha}
756
-
757
- **What changed (high level):**
758
-
759
- - Reconciled {N} manually-implemented tasks from {M} commits
760
- - Logged {K} unplanned work entries
761
-
762
- **Decisions:**
763
-
764
- - Mapping confidence breakdown: {high_count} high, {medium_count} medium, {low_count} low
765
- - Skipped commits: {skip_count}
758
+ - unplanned: {summary} - {sha}
766
759
 
767
- **Session End:** reconciliation complete
760
+ - Reconciled {N} manually-implemented tasks from {M} commits; logged {K} unplanned work entries.
761
+ - Mapping confidence: {high_count} high, {medium_count} medium, {low_count} low; skipped commits: {skip_count}.
768
762
  ```
769
763
 
770
764
  ### Step 6: Commit and Report
@@ -5,7 +5,7 @@ disable-model-invocation: false
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash(git:*), Bash(jq:*), Bash(mkdir:*), Bash(pnpm:*), Bash(oat config:*), Bash(oat decision:*), Bash(oat project log:*), Bash(oat project push:*), Bash(oat project scope:*), Bash(oat template:*), Bash(oat tools:*), Glob, Grep, AskUserQuestion
7
7
  metadata:
8
- version: 1.0.9
8
+ version: 1.0.10
9
9
  ---
10
10
 
11
11
  # Project Retrospective
@@ -88,7 +88,10 @@ The output is always:
88
88
  ### Step 2: Inventory Evidence Honestly
89
89
 
90
90
  Follow the reading order and environment detection in
91
- [references/evidence-and-lanes.md](references/evidence-and-lanes.md).
91
+ [references/evidence-and-lanes.md](references/evidence-and-lanes.md): the
92
+ unified project log (including its category-bearing learnings) first, the
93
+ legacy `oat-execution-learnings.md` second, then lifecycle artifacts and
94
+ session evidence. Evidence order and evidence-strength rules are unchanged.
92
95
 
93
96
  Create an inventory before synthesis. Record every source in
94
97
  `oat_retro_evidence_sources` with `status: used | unavailable`; name unavailable
@@ -5,9 +5,15 @@
5
5
  Inventory and read available evidence in this order:
6
6
 
7
7
  1. `project-log.md` — always check first; use its append-only entries as
8
- workflow evidence.
9
- 2. `oat-execution-learnings.md` — when present, extract observations, impact,
10
- and recommendations without treating them as already proven.
8
+ workflow evidence. Judgment entries whose body opens with a `**Category:**`
9
+ head are the unified learnings: extract their observation, impact,
10
+ recommendation and uncertainty without treating them as already proven.
11
+ 2. `oat-execution-learnings.md` — the legacy learnings file, read second when
12
+ present, with the same treatment. Skip a legacy entry only when it is a
13
+ proven twin of a unified entry (same `**Recorded:**` timestamp, category and
14
+ title, each exactly); keep a distinct lesson that only shares a title. Its
15
+ absence is recorded as `oat-execution-learnings: unavailable`, which is the
16
+ normal state for projects whose learnings live in the log.
11
17
  3. Lifecycle artifacts — at minimum `implementation.md`, `state.md`, and
12
18
  `plan.md`; also read load-bearing `discovery.md`, `design.md`, `spec.md`,
13
19
  reviews, references, and evidence ledgers when present.
@@ -5,7 +5,7 @@ disable-model-invocation: false
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Glob, Grep, Write, Edit, Bash(git:*), Bash(oat:*), Bash(pnpm:*), Bash(mkdir:*), Bash(date:*), Bash(realpath:*), Bash(awk:*), AskUserQuestion
7
7
  metadata:
8
- version: 1.5.15
8
+ version: 1.5.16
9
9
  ---
10
10
 
11
11
  # Request Review
@@ -902,8 +902,8 @@ If `review type == code` and `scope == final`, gather unresolved deferred findin
902
902
 
903
903
  Preferred sources:
904
904
 
905
- - `implementation.md` sections titled `Deferred Findings (...)`
906
- - prior review artifacts under `reviews/archived/` when implementation notes are incomplete (plus the current active review file in `reviews/`, if one exists for the in-flight cycle)
905
+ - the lines under `implementation.md`'s `## Deferred Findings` section (older journals: sections titled `Deferred Findings (...)`)
906
+ - prior review artifacts under `reviews/archived/` when implementation notes are incomplete and the files are still on this machine (plus the current active review file in `reviews/`, if one exists for the in-flight cycle); review files are local-only, so a missing one is never a finding
907
907
 
908
908
  Build:
909
909
 
@@ -916,6 +916,29 @@ Rules:
916
916
  - Include this ledger in review metadata so final review explicitly re-evaluates carry-forward debt.
917
917
  - Final review should call out whether each deferred Medium remains acceptable or should now be fixed.
918
918
 
919
+ ### Step 4.6: Journal Check for the Review Scope (Code Reviews)
920
+
921
+ For a `code` review whose scope resolves to phases, run the read-only journal
922
+ check with that explicit phase scope (`pNN-pMM` expands to every phase in the
923
+ range; `final` passes every phase the plan declares):
924
+
925
+ ```bash
926
+ JOURNAL_CHECK_JSON=$(oat project journal check --project "$PROJECT_PATH" --at review --scope "{comma-separated phase ids}" --json) || true
927
+ ```
928
+
929
+ The review boundary ignores future phases and only warns for live run lines.
930
+ Put each refused reason (`code`, `path:line`, `owner`) in the Review Scope under
931
+ `**Journal check:**` so the reviewer reports the evidence defects among them
932
+ (a missing or duplicate task block, missing commit evidence, a pasted dispatch
933
+ payload, a misplaced receipt or deferral).
934
+
935
+ **Refresh-only findings are not tasks.** A finding that a mechanical pointer or
936
+ projection refresh resolves (stale Progress Overview totals, a run line that
937
+ needs re-rendering, a phase status line or resume pointer that lags the
938
+ recorded evidence) is reported as a refresh-only note owned by closeout's
939
+ refresh, never as a fix task. Substantive evidence corrections and accepted
940
+ design changes remain traceable fix tasks with commits.
941
+
919
942
  ### Step 5: Prepare Review Metadata Block
920
943
 
921
944
  Build the "Review Scope" metadata for the reviewer:
@@ -939,6 +962,8 @@ Build the "Review Scope" metadata for the reviewer:
939
962
  - Discovery: {PROJECT_PATH}/discovery.md
940
963
  - Imported Plan Reference: {PROJECT_PATH}/references/imported-plan.md (optional; import mode)
941
964
 
965
+ **Journal check (code review only):** {status and each refused reason from Step 4.6, or "ok"}
966
+
942
967
  **Tasks in Scope (code review only):** {task IDs from plan.md matching scope; in brief modes, the execution-record IDs under the phases in scope in implementation.md, which label commits and never narrow the range}
943
968
 
944
969
  **Files Changed ({FILE_COUNT}):**
@@ -5,7 +5,7 @@ disable-model-invocation: false
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash(git:*), Bash(oat:*), Glob, Grep, AskUserQuestion, Task
7
7
  metadata:
8
- version: 1.6.11
8
+ version: 1.6.12
9
9
  ---
10
10
 
11
11
  # Receive Review
@@ -365,7 +365,7 @@ Read `oat_review_type` and `oat_review_invocation` from review artifact frontmat
365
365
  - **Judgment-sweep mode.** The phase gate already passed at its `exit_nonzero_on` threshold, so the phase does not stop. Consume the artifact anyway, so its sub-threshold findings become durable, ordered dispositions in `implementation.md` instead of evaporating. Fully non-pausing; no user prompts.
366
366
  - The gate verdict decided whether the phase stops; it did **not** decide whether Medium/Low findings are ignored. There are, by definition, no unresolved Critical/High findings in a passing gate (if there were, the gate would have blocked).
367
367
  - Make a per-finding **judgment call** for each Medium/Low — do not mechanically dump them all:
368
- - **Defer to final** (default): record under "Deferred Findings" (Mediums under "Deferred Findings (Medium)" so Step 8.5 resurfacing picks them up) with concrete rationale.
368
+ - **Defer to final** (default): record one line under the journal's `## Deferred Findings` section (Mediums tagged `Medium` so Step 8.5 resurfacing picks them up) with the finding ID and substance and concrete rationale.
369
369
  - **Address now:** only for small, contained, low-risk fixes. Apply the fix, commit it with the phase bookkeeping, and record the disposition. Do **not** re-run the standard reviewer or re-gate the phase for address-now fixes.
370
370
  - **Reject** as false-positive / out-of-scope, with concrete rationale.
371
371
  - `address now` is an **exception, not the norm** — when in doubt, defer. Do not let a passing gate drift into behaving like a Medium-blocking gate by habit.
@@ -662,34 +662,48 @@ moves to `passed`, citing the revision review in the implementation note.
662
662
 
663
663
  ### Step 7: Update Implementation.md
664
664
 
665
- Add a note to implementation.md:
665
+ Write one receipt per received review. Placement is fixed:
666
+
667
+ - a phase-scoped review (`pNN`): inside that phase's section of
668
+ `implementation.md`, after its task blocks and before the next `##` heading;
669
+ - a revision-phase review (`p-revN`): inside the `## Phase p-revN` section that
670
+ `oat-project-revise` creates (never in the phase it corrects), or under
671
+ `## Reviews and Gates`;
672
+ - a task-scoped review (`pNN-tNN`, `prevN-tNN`): inside that task's phase
673
+ section, after its task blocks;
674
+ - a final, multi-phase (`pNN-pMM`), milestone or spec/design/plan review: under
675
+ `## Reviews and Gates`;
676
+ - never after `## References`, which stays the journal's last section.
677
+
678
+ The receipt carries everything a reader needs without the review file, which
679
+ is a local-only citation (reviews are not archived, so an unresolved review
680
+ path is never a completion defect):
666
681
 
667
682
  ```markdown
668
683
  ### Review Received: {scope}
669
684
 
670
685
  **Date:** {today}
671
- **Review artifact:** reviews/archived/$REVIEW_FILENAME
672
-
673
- **Findings:**
686
+ **Review artifact (local-only):** reviews/archived/$REVIEW_FILENAME
674
687
 
675
- - Critical: {N}
676
- - High: {N}
677
- - Medium: {N}
678
- - Low: {N}
688
+ **Findings:** Critical {N} · High {N} · Medium {N} · Low {N}
679
689
 
680
- **New tasks added:** {task_ids}
690
+ - {finding_id} ({severity}): {one-line substance} → {disposition: fix task {task_id} | approved deferral (see Deferred Findings) | rejected | accepted drift}; {rationale}
681
691
 
682
692
  **Design drift / artifact alignment notes:**
683
693
 
684
694
  - {finding_id}: {review found stale design/spec/plan relative to shipped implementation; why the implementation is accepted; source of truth; artifact-alignment task ID or explicit deferral}
685
695
 
686
- **Next:** Execute fix tasks via the `oat-project-implement` skill.
696
+ **Outcome:** {fixes queued: {task_ids} | passed | deferred items only}
697
+ ```
698
+
699
+ Each approved deferral is also one line under `## Deferred Findings`, and each
700
+ fix task is a plan task whose journal block lands in its phase as usual.
687
701
 
688
702
  After the fix tasks are complete:
689
703
 
690
704
  - Update this same artifact-identified review event to `fixes_completed`
691
705
  - Re-run `oat-project-review-provide {type} {scope}` then `oat-project-review-receive` to reach `passed`
692
- ```
706
+ - Update the receipt's **Outcome** line in place when the re-review passes
693
707
 
694
708
  **Restart safety (required):**
695
709
 
@@ -699,7 +713,7 @@ After the fix tasks are complete:
699
713
  - If any finding is resolved by accepting the shipped implementation and aligning stale artifacts instead of changing code, add an explicit review note under the current "Review Received" section and update `## Deviations from Plan / Design` when that table exists.
700
714
  - For existing project artifacts, treat any `## Deviations...` heading as the deviations section; migrate to the preferred `## Deviations from Plan / Design` heading and table shape when already touching the section.
701
715
  - The note must say the review found design/spec/plan drift, why the shipped implementation is accepted, which source is now authoritative, and which artifact-alignment task will update the stale artifact.
702
- - If the artifact update is intentionally deferred, record the deferral rationale and follow-up trigger in `implementation.md`.
716
+ - If the artifact update is intentionally deferred, record the deferral rationale and follow-up trigger as a line under `## Deferred Findings` in `implementation.md`.
703
717
  - Update `{PROJECT_PATH}/state.md` frontmatter so routing/UI is accurate:
704
718
  - `oat_phase: implement`
705
719
  - `oat_phase_status: in_progress`
@@ -786,7 +800,7 @@ Before showing the menu, dispatch the complexity review that
786
800
  `references/docs/complexity-review-fallback.md` defines for this scope's
787
801
  exhausted loop, then show its decision message with the menu below; under
788
802
  `OAT_AUTONOMOUS=1`, put the same content in the boundary report instead.
789
- Record the operator's choice with the report path in `implementation.md`.
803
+ Record the operator's choice with the report path as one line under `## Reviews and Gates` in `implementation.md`.
790
804
  Agents never select the disposition. The loop history in the brief includes
791
805
  this scope's gate-originated artifacts even though the count excludes them. To
792
806
  launch the review, load the current `oat-project-dispatch-subagents/SKILL.md`
@@ -818,7 +832,7 @@ Choose an option:
818
832
 
819
833
  If `scope == final`, resurface previously deferred Medium findings from prior review cycles before marking final as `passed`.
820
834
 
821
- - Source of truth: `implementation.md` review notes ("Deferred Findings"), plus prior review artifacts in `reviews/archived/` (and any still-active top-level `reviews/` file for the current cycle).
835
+ - Source of truth: the `## Deferred Findings` lines in `implementation.md` (older journals: review notes headed "Deferred Findings"), plus prior review artifacts in `reviews/archived/` when they are still on this machine (and any still-active top-level `reviews/` file for the current cycle). Review files are local-only: the journal line must stand without them.
822
836
  - Build a "Deferred Medium Ledger" with each item and current disposition state.
823
837
 
824
838
  Ask user to decide each deferred Medium:
@@ -830,7 +844,7 @@ Rules:
830
844
 
831
845
  - Do not silently keep deferred Mediums in final scope.
832
846
  - If any deferred Medium remains undecided, final review cannot be marked `passed`.
833
- - Record user decisions + rationale in `implementation.md` under the final review notes.
847
+ - Record user decisions + rationale on each item's `## Deferred Findings` line, and the summary in the final receipt under `## Reviews and Gates`.
834
848
 
835
849
  ### Step 9: Handle Medium Deferral Requests and Low Findings
836
850
 
@@ -842,7 +856,7 @@ If any Medium is proposed for deferral:
842
856
 
843
857
  - Ask user explicitly for approval per finding.
844
858
  - If user declines deferral, convert that Medium to a fix task now.
845
- - If user approves deferral, record rationale in `implementation.md` under "Deferred Findings (Medium)".
859
+ - If user approves deferral, record one line under `## Deferred Findings` in `implementation.md`: severity `Medium`, finding ID and substance, rationale, who approved, and the follow-up trigger.
846
860
 
847
861
  Design drift handling applies before Medium/Low convenience deferrals:
848
862
 
@@ -5,7 +5,7 @@ disable-model-invocation: true
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
7
7
  metadata:
8
- version: 1.5.4
8
+ version: 1.5.5
9
9
  ---
10
10
 
11
11
  # Project Remote Review Receive
@@ -249,12 +249,16 @@ Update `plan.md`:
249
249
 
250
250
  Update `implementation.md`:
251
251
 
252
- - Add "Remote Review Received" section with:
253
- - date
254
- - PR number
252
+ - Add a `### Remote Review Received: PR #<N>` receipt under `## Reviews and Gates`
253
+ (never after `## References`) with:
254
+ - date and PR number (the PR comments are the citation; nothing local is
255
+ required to read the receipt)
255
256
  - severity counts
256
- - new task IDs
257
- - deferred/dismissed notes
257
+ - one line per finding: identity (comment author and anchor) and one-line
258
+ substance, disposition and rationale, and the fix task ID or approved
259
+ deferral it links to
260
+ - final outcome (fixes queued, dismissed, or passed)
261
+ - Write each approved deferral as one line under `## Deferred Findings`.
258
262
  - Set `oat_current_task_id` to first new review-fix task ID when tasks were added.
259
263
  - If no new tasks: keep current task pointer unchanged or set `null` if all work is complete.
260
264
 
@@ -5,7 +5,7 @@ disable-model-invocation: true
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion
7
7
  metadata:
8
- version: 1.0.7
8
+ version: 1.0.8
9
9
  ---
10
10
 
11
11
  # Project Revise
@@ -257,13 +257,20 @@ Update frontmatter to point at the first revision task so `oat-project-implement
257
257
 
258
258
  Update the Progress Overview table to include the new revision phase (e.g., add a `Phase p-rev{N}` row with task count and `in_progress` status).
259
259
 
260
+ In task modes add a `## Phase p-rev{N}: Revision {N}` section after the last
261
+ phase section (before `## Orchestration Runs`) with `**Status:** in_progress`
262
+ and one `### Task prev{N}-tNN:` block per revision task (`**Status:** pending`,
263
+ `**Commit:** -`), so every revision task has its block in its own phase.
264
+
260
265
  In brief modes point the journal at the phase instead of a task: set
261
266
  `oat_current_task_id: p-rev{N}`, add a `## Phase p-rev{N}: Revision {N}`
262
267
  section after the last phase section with `**Status:** pending` directly under
263
268
  the heading (the root writes `**Base:**` when the phase starts), and add a
264
269
  `p-rev{N}` Progress Overview row with one unit, `0/1` accepted.
265
270
 
266
- Add a "Revision Received" entry:
271
+ Add a "Revision Received" entry inside the new revision phase's section, after
272
+ its status line (brief: after its markers) and before its first task block;
273
+ never after `## References`:
267
274
 
268
275
  ```markdown
269
276
  ### Revision Received: Inline Feedback