orchestrator-workflow 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,70 @@
1
+ # Changelog
2
+
3
+ All notable changes to `orchestrator-workflow` are documented here.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.7.1] - 2026-06-24
9
+
10
+ ### Security
11
+
12
+ - The installed `reviewer` subagent now carries the same read-only tool posture
13
+ as the explorer: `disallowedTools: Edit, Write, NotebookEdit` (Claude Code) and
14
+ `permission: edit: deny` (opencode). Previously only the explorer was
15
+ tool-restricted and the reviewer was restrained by prose alone ("Do not rewrite
16
+ the change yourself"), so a misled or prompt-injected reviewer could edit files
17
+ through the edit tools. The reviewer's job is to judge work without changing it,
18
+ so it is now installed read-only on both harnesses, matching the explorer.
19
+ (Bash is intentionally not restricted by this posture on either read-only role,
20
+ unchanged from before.)
21
+
22
+ ## [0.7.0] - 2026-06-22
23
+
24
+ ### Added
25
+
26
+ - Machine-readable solution-acceptance status markers in the run templates:
27
+ `06-handoff.md` carries a `<!-- solution-acceptance: final-status = TODO -->`
28
+ line and `05-review-findings.md` carries a
29
+ `<!-- solution-acceptance: acceptance-recommendation = TODO -->` line. The
30
+ orchestrator replaces the `TODO` sentinel with the chosen enum value when
31
+ finalizing the handoff/review. This is the run-gate contract the harness
32
+ solution-acceptance gate reads, so a freshly-copied run is non-accepting by
33
+ construction (fail-closed). SKILL.md documents the finalization step.
34
+
35
+ ## [0.6.0]
36
+
37
+ ### Changed
38
+
39
+ - Portable opencode model resolution (#62).
40
+
41
+ ## [0.5.0]
42
+
43
+ ### Added
44
+
45
+ - Instruction trust boundary for the workflow, policy, and agent prompts (#55).
46
+
47
+ ## [0.4.0]
48
+
49
+ ### Added
50
+
51
+ - Read-only explorer/discovery role (#52).
52
+
53
+ ## [0.3.0]
54
+
55
+ ### Added
56
+
57
+ - Proportionality rule for delegation (#51).
58
+
59
+ ## [0.2.0]
60
+
61
+ ### Added
62
+
63
+ - Target-directory transparency and an `uninstall` command (#50).
64
+
65
+ ## [0.1.0]
66
+
67
+ ### Added
68
+
69
+ - Initial `orchestrator-workflow` package: `.ai/` run state, an `AGENTS.md`
70
+ policy section, and per-harness subagent definitions (#47).
package/INSTALL-AGENT.md CHANGED
@@ -107,8 +107,8 @@ steps in the repository you were asked to install into.
107
107
  `assets/skill/SKILL.md`. For each role, `.claude/agents/<role>.md` from
108
108
  `assets/agents/<role>.md` with `model: <operator's choice>` added as a
109
109
  new line directly after the `description:` line (that placement matches
110
- the installer's output byte for byte). For the explorer role
111
- additionally, `disallowedTools: Edit, Write, NotebookEdit` goes on a new
110
+ the installer's output byte for byte). For the explorer and reviewer
111
+ roles additionally, `disallowedTools: Edit, Write, NotebookEdit` goes on a new
112
112
  line directly after the `model:` line. Ensure `CLAUDE.md` exists and
113
113
  contains a line `@AGENTS.md`.
114
114
  - Codex: `.agents/skills/orchestrator-workflow/SKILL.md`, same skill file.
@@ -125,10 +125,11 @@ steps in the repository you were asked to install into.
125
125
  which is the safe portable fallback. The installed CLI resolves aliases
126
126
  to fully-qualified ids by running `opencode models` at install time; in a
127
127
  manual install you may not have a live catalog, so omitting `model:` is
128
- correct. For the explorer role additionally, `permission:` goes on a new
128
+ correct. For the explorer and reviewer roles additionally, `permission:` goes on a new
129
129
  line directly after `mode: subagent` (or after `model:` when that line is
130
130
  present), followed by ` edit: deny` (two-space indent) on the next line.
131
- Example explorer frontmatter when no model is resolved:
131
+ Example read-only role frontmatter (explorer or reviewer) when no model
132
+ is resolved:
132
133
  ```yaml
133
134
  ---
134
135
  description: "..."
package/README.md CHANGED
@@ -97,9 +97,9 @@ Per selected harness:
97
97
 
98
98
  | Harness | Files | Notes |
99
99
  |---|---|---|
100
- | Claude Code | `.claude/skills/orchestrator-workflow/SKILL.md`, `.claude/agents/{explorer,task-slicer,implementer,reviewer}.md`, `CLAUDE.md` | Claude Code reads `CLAUDE.md`, not `AGENTS.md`; the installer adds an additive `@AGENTS.md` import. Subagent models go into the `model:` frontmatter; the read-only explorer also gets `disallowedTools: Edit, Write, NotebookEdit`. |
100
+ | Claude Code | `.claude/skills/orchestrator-workflow/SKILL.md`, `.claude/agents/{explorer,task-slicer,implementer,reviewer}.md`, `CLAUDE.md` | Claude Code reads `CLAUDE.md`, not `AGENTS.md`; the installer adds an additive `@AGENTS.md` import. Subagent models go into the `model:` frontmatter; the read-only explorer and reviewer also get `disallowedTools: Edit, Write, NotebookEdit`. |
101
101
  | OpenAI Codex | `.agents/skills/orchestrator-workflow/SKILL.md` | Codex reads `AGENTS.md` natively. There is no standardized project-level subagent definition; the skill instructs running the roles inline with the same contracts. |
102
- | opencode | `.opencode/skills/orchestrator-workflow/SKILL.md`, `.opencode/agents/{explorer,task-slicer,implementer,reviewer}.md` | opencode reads `AGENTS.md` natively. Subagents get `mode: subagent`; the explorer also gets `permission: edit: deny`. Model resolution is described below. |
102
+ | opencode | `.opencode/skills/orchestrator-workflow/SKILL.md`, `.opencode/agents/{explorer,task-slicer,implementer,reviewer}.md` | opencode reads `AGENTS.md` natively. Subagents get `mode: subagent`; the read-only explorer and reviewer also get `permission: edit: deny`. Model resolution is described below. |
103
103
 
104
104
  ## Model preselection
105
105
 
@@ -106,6 +106,12 @@ directory and the subagents.
106
106
  9. **Hand off.** Fill `06-handoff.md` and report to the operator: what changed,
107
107
  why, how it was verified, known risks, accepted waivers, suggested next step.
108
108
 
109
+ When finalizing `05-review-findings.md` and `06-handoff.md`, replace the `TODO`
110
+ in each `<!-- solution-acceptance: ... = TODO -->` marker with the chosen enum
111
+ value. That marker line is the machine-readable signal the harness
112
+ solution-acceptance run-gate reads, so leaving it as `TODO` keeps the run
113
+ non-accepting (fail-closed).
114
+
109
115
  ## Explorer output contract
110
116
 
111
117
  ```yaml
@@ -21,3 +21,5 @@
21
21
  ## Acceptance Recommendation
22
22
 
23
23
  accept | accept_with_notes | fix_required | reject
24
+
25
+ <!-- solution-acceptance: acceptance-recommendation = TODO -->
@@ -31,3 +31,5 @@
31
31
  ## Final Status
32
32
 
33
33
  accepted | accepted_with_notes | needs_followup | blocked
34
+
35
+ <!-- solution-acceptance: final-status = TODO -->
package/dist/models.js CHANGED
@@ -8,7 +8,10 @@ export const ROLES = [
8
8
  * Roles that map the terrain or judge work without changing it. They are
9
9
  * installed with a read-only posture (no file-mutation tools).
10
10
  */
11
- export const READ_ONLY_ROLES = new Set(["explorer"]);
11
+ export const READ_ONLY_ROLES = new Set([
12
+ "explorer",
13
+ "reviewer",
14
+ ]);
12
15
  export const MODEL_ALIASES = ["sonnet", "opus", "haiku"];
13
16
  /**
14
17
  * Per-role defaults. The orchestrator itself runs on the session model and is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orchestrator-workflow",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "Installer for an orchestrator-led agent workflow: .ai/ run state, an AGENTS.md policy section, and per-harness subagent definitions for Claude Code, OpenAI Codex, and opencode",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -11,7 +11,8 @@
11
11
  "dist",
12
12
  "assets",
13
13
  "README.md",
14
- "INSTALL-AGENT.md"
14
+ "INSTALL-AGENT.md",
15
+ "CHANGELOG.md"
15
16
  ],
16
17
  "scripts": {
17
18
  "build": "tsc",