agentplane 0.2.26 → 0.3.2
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/README.md +3 -1
- package/assets/AGENTS.md +124 -526
- package/assets/agents/UPGRADER.json +10 -9
- package/assets/framework.manifest.json +112 -7
- package/assets/policy/check-routing.mjs +180 -0
- package/assets/policy/dod.code.md +25 -0
- package/assets/policy/dod.core.md +32 -0
- package/assets/policy/dod.docs.md +32 -0
- package/assets/policy/examples/migration-note.md +6 -0
- package/assets/policy/examples/pr-note.md +16 -0
- package/assets/policy/examples/unit-test-pattern.md +19 -0
- package/assets/policy/governance.md +37 -0
- package/assets/policy/incidents.md +36 -0
- package/assets/policy/security.must.md +7 -0
- package/assets/policy/workflow.branch_pr.md +34 -0
- package/assets/policy/workflow.direct.md +47 -0
- package/assets/policy/workflow.md +9 -0
- package/assets/policy/workflow.release.md +31 -0
- package/assets/policy/workflow.upgrade.md +20 -0
- package/bin/agentplane.js +88 -87
- package/bin/dist-guard.js +124 -0
- package/bin/runtime-context.d.ts +20 -0
- package/bin/runtime-context.js +81 -0
- package/dist/.build-manifest.json +5 -5
- package/dist/agents/agents-template.d.ts +7 -0
- package/dist/agents/agents-template.d.ts.map +1 -1
- package/dist/agents/agents-template.js +41 -2
- package/dist/cli/bootstrap-guide.d.ts +18 -0
- package/dist/cli/bootstrap-guide.d.ts.map +1 -0
- package/dist/cli/bootstrap-guide.js +132 -0
- package/dist/cli/command-guide.d.ts.map +1 -1
- package/dist/cli/command-guide.js +58 -183
- package/dist/cli/command-snippets.d.ts +3 -3
- package/dist/cli/command-snippets.js +3 -3
- package/dist/cli/run-cli/commands/core.js +3 -3
- package/dist/cli/run-cli/commands/ide.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/ide.js +8 -3
- package/dist/cli/run-cli/commands/init/ui.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/init/ui.js +1 -2
- package/dist/cli/run-cli/commands/init/write-agents.d.ts +2 -0
- package/dist/cli/run-cli/commands/init/write-agents.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/init/write-agents.js +24 -5
- package/dist/cli/run-cli/commands/init/write-workflow.d.ts +5 -0
- package/dist/cli/run-cli/commands/init/write-workflow.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/init/write-workflow.js +6 -0
- package/dist/cli/run-cli/commands/init.d.ts +2 -0
- package/dist/cli/run-cli/commands/init.d.ts.map +1 -1
- package/dist/cli/run-cli/commands/init.js +47 -19
- package/dist/cli/run-cli.d.ts.map +1 -1
- package/dist/cli/run-cli.js +125 -7
- package/dist/commands/doctor.run.d.ts.map +1 -1
- package/dist/commands/doctor.run.js +48 -6
- package/dist/commands/finish.run.d.ts.map +1 -1
- package/dist/commands/finish.run.js +1 -0
- package/dist/commands/finish.spec.d.ts +1 -0
- package/dist/commands/finish.spec.d.ts.map +1 -1
- package/dist/commands/finish.spec.js +23 -2
- package/dist/commands/release/apply.command.d.ts +1 -0
- package/dist/commands/release/apply.command.d.ts.map +1 -1
- package/dist/commands/release/apply.command.js +20 -9
- package/dist/commands/release/plan.command.d.ts.map +1 -1
- package/dist/commands/release/plan.command.js +9 -3
- package/dist/commands/task/add.d.ts.map +1 -1
- package/dist/commands/task/add.js +32 -0
- package/dist/commands/task/doc.command.d.ts.map +1 -1
- package/dist/commands/task/doc.command.js +1 -0
- package/dist/commands/task/finish.d.ts +1 -0
- package/dist/commands/task/finish.d.ts.map +1 -1
- package/dist/commands/task/finish.js +28 -7
- package/dist/commands/task/new.d.ts.map +1 -1
- package/dist/commands/task/new.js +41 -4
- package/dist/commands/task/plan.d.ts.map +1 -1
- package/dist/commands/task/plan.js +7 -1
- package/dist/commands/task/shared.d.ts +7 -0
- package/dist/commands/task/shared.d.ts.map +1 -1
- package/dist/commands/task/shared.js +37 -0
- package/dist/commands/task/start-ready.js +1 -1
- package/dist/commands/upgrade.command.d.ts.map +1 -1
- package/dist/commands/upgrade.command.js +11 -7
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +284 -296
- package/dist/commands/workflow-build.command.d.ts.map +1 -1
- package/dist/commands/workflow-build.command.js +7 -0
- package/dist/commands/workflow-playbook.command.d.ts.map +1 -1
- package/dist/commands/workflow-playbook.command.js +0 -1
- package/dist/shared/policy-gateway.d.ts +15 -0
- package/dist/shared/policy-gateway.d.ts.map +1 -0
- package/dist/shared/policy-gateway.js +49 -0
- package/dist/shared/protected-paths.d.ts.map +1 -1
- package/dist/shared/protected-paths.js +1 -0
- package/dist/shared/runtime-artifacts.d.ts +2 -2
- package/dist/shared/runtime-artifacts.d.ts.map +1 -1
- package/dist/shared/runtime-artifacts.js +4 -0
- package/dist/workflow-runtime/build.d.ts +1 -1
- package/dist/workflow-runtime/build.d.ts.map +1 -1
- package/dist/workflow-runtime/build.js +14 -2
- package/package.json +2 -2
package/assets/AGENTS.md
CHANGED
|
@@ -1,601 +1,199 @@
|
|
|
1
1
|
<!--
|
|
2
|
-
AGENTS_POLICY:
|
|
2
|
+
AGENTS_POLICY: gateway-v1.1
|
|
3
3
|
repo_namespace: .agentplane
|
|
4
4
|
default_initiator: ORCHESTRATOR
|
|
5
5
|
-->
|
|
6
6
|
|
|
7
7
|
# PURPOSE
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
This policy is designed to be the single, authoritative instruction set the agent follows when invoked in a folder containing this file.
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# GLOBAL RULES
|
|
17
|
-
|
|
18
|
-
## Language of artifacts
|
|
19
|
-
|
|
20
|
-
- All repository-facing artifacts, including task titles, task descriptions, generated docs, notes, and comments must be in English unless the user explicitly requests another language for a specific task.
|
|
21
|
-
- User-facing chat responses should follow the user's language preference (here: Russian), while disk artifacts remain English-first by default.
|
|
22
|
-
|
|
23
|
-
## Cross-platform and encoding
|
|
24
|
-
|
|
25
|
-
- All textual files in this repository must use UTF-8.
|
|
26
|
-
- Repos should keep source text files normalized and portable; avoid OS-local path and shell assumptions in core runtime logic.
|
|
27
|
-
- Treat path handling and process invocation as platform-sensitive; abstract platform-specific behavior behind explicit utilities.
|
|
28
|
-
- Encode new scripts and docs using UTF-8 and avoid legacy code-page text in repository files.
|
|
29
|
-
|
|
30
|
-
## Sources of truth (priority order)
|
|
31
|
-
|
|
32
|
-
1. `AGENTS.md` (this file)
|
|
33
|
-
2. `agentplane quickstart` / `agentplane role <ROLE>` output
|
|
34
|
-
3. `.agentplane/config.json`
|
|
35
|
-
4. `.agentplane/agents/*.json`
|
|
36
|
-
|
|
37
|
-
If two sources conflict, prefer the higher-priority source.
|
|
38
|
-
|
|
39
|
-
## CLI invocation
|
|
40
|
-
|
|
41
|
-
All commands in this policy are written as `agentplane ...`.
|
|
42
|
-
Use the `agentplane` CLI from `PATH` when available; if not, use the repo-local entrypoint (for example `node packages/agentplane/bin/agentplane.js ...`).
|
|
43
|
-
|
|
44
|
-
## Scope boundary
|
|
45
|
-
|
|
46
|
-
- All operations must remain within the repository unless explicitly approved (see Approval Gates + Overrides).
|
|
47
|
-
- Do not read/write global user files (`~`, `/etc`, keychains, ssh keys, global git config) unless explicitly approved and necessary.
|
|
48
|
-
|
|
49
|
-
## Agent roles (authority boundaries)
|
|
50
|
-
|
|
51
|
-
- **ORCHESTRATOR**: the only role allowed to initiate a run; owns user-facing plan + approval gates; does not create task artifacts.
|
|
52
|
-
- **PLANNER**: the sole creator of executable tasks; may reprioritize tasks; may adjust task graph planning (within approved scope).
|
|
53
|
-
- **CREATOR**: creates a new specialized agent definition only when required by the approved plan.
|
|
54
|
-
- **INTEGRATOR**: the only role allowed to integrate/merge into base branch (for `branch_pr`), finish tasks on base, and run exports.
|
|
55
|
-
|
|
56
|
-
No other role may assume another role’s authority.
|
|
57
|
-
|
|
58
|
-
## Execution agents (registry)
|
|
59
|
-
|
|
60
|
-
Execution agents are defined by JSON files under `.agentplane/agents/*.json`. The file basename (without `.json`) is the agent ID (e.g. `CODER`, `TESTER`, `REVIEWER`, `DOCS`).
|
|
61
|
-
|
|
62
|
-
**Contract (executable task assignment):**
|
|
63
|
-
|
|
64
|
-
- Every executable task created by PLANNER MUST set `owner` to an existing execution agent ID from `.agentplane/agents/*.json`.
|
|
65
|
-
- If no suitable execution agent exists, PLANNER MUST:
|
|
66
|
-
- create a dedicated CREATOR task to add the missing agent definition, and
|
|
67
|
-
- make all tasks that require that new agent depend on the CREATOR task via `depends_on: [<creator-task-id>]`.
|
|
68
|
-
|
|
69
|
-
**Enforcement status:**
|
|
70
|
-
|
|
71
|
-
- Current: hard validation in CLI (`task new` / `task update`) when `owner` does not exist in `.agentplane/agents` (command fails with `E_VALIDATION`).
|
|
72
|
-
- Planned: keep the CLI gate and add CI lint for drift detection/reporting.
|
|
73
|
-
|
|
74
|
-
## Definitions (remove ambiguity)
|
|
75
|
-
|
|
76
|
-
- **Read-only inspection**: commands that may read repo state but must not change tracked files or commit history.
|
|
77
|
-
Examples: `agentplane config show`, `agentplane task list`, `agentplane task show`, `git status`, `git diff`, `cat`, `grep`.
|
|
78
|
-
- **Mutating action**: anything that can change tracked files, task state, commits, branches, or outside-repo state.
|
|
79
|
-
Examples: `agentplane task new/update/doc set/plan set/start/finish/verify`, `git commit`, `git checkout`, `bun install`.
|
|
80
|
-
|
|
81
|
-
If unsure whether an action mutates state, treat it as mutating.
|
|
82
|
-
|
|
83
|
-
## Truthfulness & safety (hard invariants)
|
|
84
|
-
|
|
85
|
-
- Never invent facts about repo state. Prefer inspection over guessing.
|
|
86
|
-
- Never modify `.agentplane/tasks.json` manually. It is an **export-only snapshot** generated via `agentplane task export`.
|
|
87
|
-
- Never expose raw internal chain-of-thought. Use structured artifacts instead (see OUTPUT CONTRACTS).
|
|
88
|
-
- Timestamps are recorded in task metadata fields (for example `plan_approval.updated_at` and `verification.updated_at`); do not duplicate timestamps in human notes unless explicitly required.
|
|
89
|
-
|
|
90
|
-
## Cleanliness & untracked files
|
|
91
|
-
|
|
92
|
-
- Ignore pre-existing untracked files you did not create.
|
|
93
|
-
- Only stage/commit files intentionally modified for the current task.
|
|
94
|
-
- Any tracked code changes must be recorded in a git commit before finishing the task (do not leave `packages/**` diffs uncommitted).
|
|
95
|
-
- “Clean” means: **no tracked changes** (`git status --short --untracked-files=no` is empty).
|
|
96
|
-
- If untracked files interfere with verify/guardrails or fall inside the task scope paths, surface them as a risk and request approval before acting.
|
|
97
|
-
|
|
98
|
-
## Approval gates (network vs outside-repo)
|
|
99
|
-
|
|
100
|
-
### Network
|
|
101
|
-
|
|
102
|
-
If `.agentplane/config.json` sets `agents.approvals.require_network=true`:
|
|
103
|
-
|
|
104
|
-
- Network use is prohibited until the user explicitly approves it (per run or per command batch).
|
|
105
|
-
|
|
106
|
-
Network use includes (non-exhaustive):
|
|
107
|
-
|
|
108
|
-
- `pip`, `npm`, `bun install`, downloading binaries/models
|
|
109
|
-
- `curl`, `wget`
|
|
110
|
-
- `git fetch`, `git pull`
|
|
111
|
-
- calling external HTTP APIs or remote services
|
|
112
|
-
|
|
113
|
-
### Outside-repo
|
|
114
|
-
|
|
115
|
-
Outside-repo reading/writing is **always prohibited** unless the user explicitly approves it (regardless of `require_network`).
|
|
116
|
-
|
|
117
|
-
Outside-repo includes (non-exhaustive):
|
|
118
|
-
|
|
119
|
-
- reading/writing outside the repo (`~`, `/etc`, global configs)
|
|
120
|
-
- modifying keychains, ssh keys, credential stores
|
|
121
|
-
- any tool that mutates outside-repo state
|
|
122
|
-
|
|
123
|
-
## Execution Profile
|
|
124
|
-
|
|
125
|
-
`execution` settings in `.agentplane/config.json` define operational behavior defaults for agents:
|
|
126
|
-
|
|
127
|
-
- `profile`: `conservative` / `balanced` / `aggressive`
|
|
128
|
-
- `reasoning_effort`: `low` / `medium` / `high`
|
|
129
|
-
- `tool_budget`: `{ discovery, implementation, verification }`
|
|
130
|
-
- `stop_conditions`: conditions that force a stop/re-plan/escalation
|
|
131
|
-
- `handoff_conditions`: conditions that trigger handoff to another role
|
|
132
|
-
- `unsafe_actions_requiring_explicit_user_ok`: actions that require explicit user confirmation
|
|
133
|
-
|
|
134
|
-
Approval escalation semantics:
|
|
135
|
-
|
|
136
|
-
- `execution` MAY raise approval requirements for specific actions (`network_access`, `force_action`).
|
|
137
|
-
- `execution` does not add new CLI capabilities; it only changes whether explicit approval is required.
|
|
138
|
-
- Capability boundaries remain defined by CLI commands + this policy.
|
|
139
|
-
|
|
140
|
-
Profile matrix:
|
|
141
|
-
|
|
142
|
-
- `conservative`: require approval for `network_access` and `force_action` (even if baseline approvals disable them).
|
|
143
|
-
- `balanced`: use baseline approvals from `agents.approvals`.
|
|
144
|
-
- `aggressive`: use baseline approvals from `agents.approvals`.
|
|
145
|
-
|
|
146
|
-
Precedence:
|
|
147
|
-
|
|
148
|
-
- Role authority boundaries, source-of-truth order, and hard invariants in this `AGENTS.md` still take precedence.
|
|
149
|
-
- If `execution` config conflicts with policy, `AGENTS.md` policy wins.
|
|
150
|
-
|
|
151
|
-
## Framework Upgrade / Prompt Merge
|
|
152
|
-
|
|
153
|
-
`agentplane upgrade` is responsible for mechanical upgrades and safe merges. Treat prompt-merge as required only for unresolved semantic conflicts (for example, both local and incoming changes exist relative to a baseline and cannot be safely reconciled automatically, or merge parsing fails). If local files did not change relative to baseline, the upgrade may apply incoming framework updates without semantic review.
|
|
154
|
-
|
|
155
|
-
Trigger:
|
|
156
|
-
|
|
157
|
-
- After running `agentplane upgrade`, check the latest upgrade review report:
|
|
158
|
-
- Agent mode: `.agentplane/.upgrade/agent/<runId>/review.json`
|
|
159
|
-
- Auto mode: `.agentplane/.upgrade/last-review.json`
|
|
160
|
-
- If any record has `needsSemanticReview: true`, prompt merge is required.
|
|
161
|
-
- `needsSemanticReview: false` means the change was mechanically safe (including cases where local files were unchanged vs baseline and incoming updates were applied directly).
|
|
162
|
-
|
|
163
|
-
Protocol:
|
|
164
|
-
|
|
165
|
-
1. ORCHESTRATOR runs the upgrade (or coordinates whoever runs it) and identifies the upgrade run artifacts directory (for example `.agentplane/.upgrade/agent/<runId>/`).
|
|
166
|
-
2. If the upgrade review report indicates semantic conflicts (`needsSemanticReview: true` for any file), ORCHESTRATOR instructs PLANNER to create an executable task owned by `UPGRADER`.
|
|
167
|
-
3. UPGRADER performs semantic reconciliation of `AGENTS.md` and `.agentplane/agents/*.json`:
|
|
168
|
-
- `AGENTS.md` remains the canonical policy source (highest priority).
|
|
169
|
-
- Preserve local customizations via the Local Overrides block (`<!-- AGENTPLANE:LOCAL-START/END -->`) where feasible.
|
|
170
|
-
- Minimize unrelated churn in agent JSON profiles; remove contradictions with `AGENTS.md`.
|
|
171
|
-
|
|
172
|
-
Task creation requirements (PLANNER):
|
|
173
|
-
|
|
174
|
-
- Owner: `UPGRADER`
|
|
175
|
-
- Description must include:
|
|
176
|
-
- the upgrade run directory path (for example `.agentplane/.upgrade/agent/<runId>/`)
|
|
177
|
-
- the list of `relPath` entries with `needsSemanticReview: true` from `review.json`
|
|
178
|
-
|
|
179
|
-
Done when:
|
|
180
|
-
|
|
181
|
-
- No contradictions remain between `AGENTS.md` and agent profiles.
|
|
182
|
-
- Local overrides are preserved (or explicitly removed with a documented decision).
|
|
183
|
-
- Relevant lint/tests pass.
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
# NON-NEGOTIABLE PIPELINE
|
|
188
|
-
|
|
189
|
-
1. **Preflight** (ORCHESTRATOR, mandatory; read-only)
|
|
190
|
-
2. **Plan + task graph planning** (no execution; read-only)
|
|
191
|
-
3. **Explicit user approval** (overall plan + any requested overrides)
|
|
192
|
-
4. **Create executable task graph** (PLANNER)
|
|
193
|
-
5. **Plan and document created tasks**
|
|
194
|
-
6. **Execute tasks under mode-specific workflow**
|
|
195
|
-
7. **Verify**
|
|
196
|
-
8. **Finish**
|
|
197
|
-
9. **Export** (if enabled / required)
|
|
198
|
-
|
|
199
|
-
No step may be skipped unless the user explicitly authorizes skipping it via the Override Protocol.
|
|
9
|
+
`AGENTS.md` is the policy gateway for agents in this repository.
|
|
10
|
+
It provides strict routing, hard constraints, and command contracts.
|
|
11
|
+
Detailed procedures live in canonical modules from `## CANONICAL DOCS`.
|
|
200
12
|
|
|
201
13
|
---
|
|
202
14
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
## Do not expose raw internal chain-of-thought
|
|
206
|
-
|
|
207
|
-
Agents MUST NOT output raw internal chain-of-thought (token-level reasoning, scratchwork, discarded branches).
|
|
208
|
-
|
|
209
|
-
## Use structured, inspectable reasoning artifacts
|
|
15
|
+
## PROJECT
|
|
210
16
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
-
|
|
214
|
-
-
|
|
215
|
-
- **Assumptions**
|
|
216
|
-
- **Decisions**
|
|
217
|
-
- **Trade-offs**
|
|
218
|
-
- **Verification criteria**
|
|
219
|
-
- **Inference trace** (brief, task-relevant links between inputs -> decisions -> outputs)
|
|
220
|
-
|
|
221
|
-
This is the required substitute for raw chain-of-thought.
|
|
17
|
+
- Repository type: user project initialized with `agentplane`.
|
|
18
|
+
- Gateway role: keep this file compact and deterministic; move scenario-specific details to policy modules.
|
|
19
|
+
- CLI rule: use `agentplane` from `PATH`; if unavailable, stop and request installation guidance (do not invent repo-local entrypoints).
|
|
20
|
+
- Startup shortcut: run `## COMMANDS -> Preflight`, then read `docs/user/agent-bootstrap.generated.mdx`, then apply `## LOAD RULES` before any mutation.
|
|
222
21
|
|
|
223
22
|
---
|
|
224
23
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
Preflight is **read-only inspection**. It is allowed before user approval.
|
|
228
|
-
|
|
229
|
-
Before any planning or execution, ORCHESTRATOR must run:
|
|
24
|
+
## SOURCES OF TRUTH
|
|
230
25
|
|
|
231
|
-
|
|
232
|
-
2. `agentplane quickstart` (CLI instructions)
|
|
233
|
-
3. `agentplane task list`
|
|
234
|
-
4. `git status --short --untracked-files=no`
|
|
235
|
-
5. `git rev-parse --abbrev-ref HEAD`
|
|
26
|
+
Priority order (highest first):
|
|
236
27
|
|
|
237
|
-
|
|
28
|
+
1. Enforcement: CI, tests, linters, hooks, CLI validations.
|
|
29
|
+
2. Policy gateway: `AGENTS.md`.
|
|
30
|
+
3. Canonical policy modules from `## CANONICAL DOCS`.
|
|
31
|
+
4. CLI guidance: `agentplane quickstart`, `agentplane role <ROLE>`, `docs/user/agent-bootstrap.generated.mdx`, `.agentplane/config.json`.
|
|
32
|
+
5. Reference examples from `## REFERENCE EXAMPLES`.
|
|
238
33
|
|
|
239
|
-
|
|
34
|
+
Conflict rule:
|
|
240
35
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
- Config loaded: yes/no
|
|
244
|
-
- CLI instructions loaded: yes/no
|
|
245
|
-
- Task list loaded: yes/no
|
|
246
|
-
- Working tree clean (tracked-only): yes/no
|
|
247
|
-
- Current git branch: `<name>`
|
|
248
|
-
- `workflow_mode`: `direct` / `branch_pr` / unknown
|
|
249
|
-
- Approval gates (from config):
|
|
250
|
-
- `require_plan`: true/false/unknown
|
|
251
|
-
- `require_verify`: true/false/unknown
|
|
252
|
-
- `require_network`: true/false/unknown
|
|
253
|
-
- Outside-repo: not needed / needed (if needed, requires explicit user approval)
|
|
254
|
-
|
|
255
|
-
Do not output the full contents of config or quickstart unless the user explicitly asks.
|
|
36
|
+
- If documentation conflicts with enforcement, enforcement wins.
|
|
37
|
+
- If lower-priority text conflicts with higher-priority policy, higher-priority policy wins.
|
|
256
38
|
|
|
257
39
|
---
|
|
258
40
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
- Always begin work by engaging ORCHESTRATOR.
|
|
262
|
-
- ORCHESTRATOR starts by producing an execution plan + task graph plan.
|
|
263
|
-
- **Before explicit user approval, do not perform mutating actions.**
|
|
264
|
-
- Allowed: read-only inspection (including preflight).
|
|
265
|
-
- Prohibited: creating/updating tasks, editing files, starting/finishing tasks, commits, branching, verify runs that mutate task state, network use, outside-repo access.
|
|
266
|
-
|
|
267
|
-
---
|
|
41
|
+
## SCOPE BOUNDARY
|
|
268
42
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
ORCHESTRATOR MUST produce:
|
|
274
|
-
|
|
275
|
-
- **Scope**
|
|
276
|
-
- In-scope paths and artifacts
|
|
277
|
-
- Out-of-scope boundaries
|
|
278
|
-
- **Assumptions**
|
|
279
|
-
- Only if required; each assumption must be testable/confirmable
|
|
280
|
-
- **Steps**
|
|
281
|
-
- Ordered, executable steps
|
|
282
|
-
- **Task graph planning**
|
|
283
|
-
- Atomic tasks, each with one specific owner from existing agent IDs
|
|
284
|
-
- Prefer the minimum number of executable tasks; do not split work by role labels alone
|
|
285
|
-
- Split only when there is an independent deliverable, a different required owner, or a real dependency/verification boundary
|
|
286
|
-
- Do not create executable tasks solely for scaffolding/docs handoffs/status bookkeeping
|
|
287
|
-
- **Approvals**
|
|
288
|
-
- Whether network and/or outside-repo actions will be needed
|
|
289
|
-
- Any requested overrides (see Override Protocol)
|
|
290
|
-
- **Verification criteria**
|
|
291
|
-
- What will be considered "done" + checks to run
|
|
292
|
-
- **Rollback plan**
|
|
293
|
-
- How to revert safely if verification fails
|
|
294
|
-
- **Drift triggers**
|
|
295
|
-
- Conditions that require re-approval (see DRIFT POLICY)
|
|
296
|
-
|
|
297
|
-
## 2) After user approval (task graph is mandatory)
|
|
298
|
-
|
|
299
|
-
- PLANNER creates executable tasks directly from the approved task graph plan.
|
|
300
|
-
- If task graph planning yields exactly one work item, create exactly one executable task.
|
|
301
|
-
- If task graph planning yields multiple work items, create only executable tasks and connect them with `depends_on`.
|
|
302
|
-
- Before creating a new task, PLANNER must check open tasks (`TODO|DOING|BLOCKED`) and reuse/update a matching task when scope and owner align.
|
|
303
|
-
- Task IDs are referenced in comments/notes for traceability.
|
|
304
|
-
|
|
305
|
-
**Task traceability is mandatory** for any work that changes repo state and must be captured on executable tasks. Exceptions require explicit user approval (Override Protocol).
|
|
43
|
+
- MUST keep all actions inside this repository unless the user explicitly approves outside-repo access.
|
|
44
|
+
- MUST NOT read or modify global user files (`~`, `/etc`, keychains, ssh keys, global git config) without explicit user approval.
|
|
45
|
+
- MUST treat network access as approval-gated when `agents.approvals.require_network=true`.
|
|
306
46
|
|
|
307
47
|
---
|
|
308
48
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
Overrides exist to let the user intentionally relax guardrails **in a controlled, logged way**.
|
|
312
|
-
|
|
313
|
-
## Hard invariants (cannot be overridden)
|
|
314
|
-
|
|
315
|
-
- No fabricated repo facts.
|
|
316
|
-
- No raw chain-of-thought.
|
|
317
|
-
- No manual editing of `.agentplane/tasks.json` (exports are generated, not edited).
|
|
318
|
-
|
|
319
|
-
## What can be overridden (with explicit user approval)
|
|
49
|
+
## COMMANDS
|
|
320
50
|
|
|
321
|
-
|
|
51
|
+
### Preflight
|
|
322
52
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
53
|
+
```bash
|
|
54
|
+
agentplane config show
|
|
55
|
+
agentplane quickstart
|
|
56
|
+
agentplane task list
|
|
57
|
+
git status --short --untracked-files=no
|
|
58
|
+
git rev-parse --abbrev-ref HEAD
|
|
59
|
+
```
|
|
328
60
|
|
|
329
|
-
|
|
61
|
+
### Task lifecycle
|
|
330
62
|
|
|
331
|
-
|
|
63
|
+
```bash
|
|
64
|
+
agentplane task new --title "..." --description "..." --priority med --owner <ROLE> --tag <tag>
|
|
65
|
+
agentplane task plan set <task-id> --text "..." --updated-by <ROLE>
|
|
66
|
+
agentplane task plan approve <task-id> --by ORCHESTRATOR
|
|
67
|
+
agentplane task start-ready <task-id> --author <ROLE> --body "Start: ..."
|
|
68
|
+
agentplane verify <task-id> --ok|--rework --by <ROLE> --note "..."
|
|
69
|
+
agentplane finish <task-id> --author <ROLE> --body "Verified: ..." --result "..." --commit <git-rev>
|
|
70
|
+
```
|
|
332
71
|
|
|
333
|
-
|
|
334
|
-
2. State why it is necessary.
|
|
335
|
-
3. State the exact commands/actions it enables.
|
|
336
|
-
4. State the scope and expiration (this task only / this run only).
|
|
72
|
+
### Verification
|
|
337
73
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
- In the task(s) executing the approved scope under `## Notes` → `### Approvals / Overrides`.
|
|
74
|
+
```bash
|
|
75
|
+
agentplane task verify-show <task-id>
|
|
76
|
+
agentplane verify <task-id> --ok|--rework --by <ROLE> --note "..."
|
|
77
|
+
agentplane doctor
|
|
78
|
+
node .agentplane/policy/check-routing.mjs
|
|
79
|
+
```
|
|
345
80
|
|
|
346
81
|
---
|
|
347
82
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
## Golden rule
|
|
351
|
-
|
|
352
|
-
If an agent changes repo state, that work must be traceable to a task ID and a filled task README.
|
|
353
|
-
|
|
354
|
-
## Task scaffold policy
|
|
355
|
-
|
|
356
|
-
- `agentplane task new` seeds standard README sections automatically.
|
|
357
|
-
- Use `agentplane task scaffold <task-id>` only for backfill/import/manual repair flows.
|
|
358
|
-
|
|
359
|
-
## Who fills the README
|
|
360
|
-
|
|
361
|
-
- ORCHESTRATOR/PLANNER may create tasks with a minimal description.
|
|
362
|
-
- The **agent that will execute the task** is responsible for filling the task README sections
|
|
363
|
-
(Plan + Verify Steps + Risks + Rollback + Notes) before starting work.
|
|
364
|
-
|
|
365
|
-
## Required sections (before finish)
|
|
366
|
-
|
|
367
|
-
Required sections are config-driven (`.agentplane/config.json` → `tasks.doc.required_sections`).
|
|
368
|
-
At minimum, every task MUST have non-empty content for:
|
|
369
|
-
|
|
370
|
-
- Summary
|
|
371
|
-
- Scope
|
|
372
|
-
- Plan
|
|
373
|
-
- Risks
|
|
374
|
-
- Verification
|
|
375
|
-
- Rollback Plan
|
|
376
|
-
|
|
377
|
-
**Policy addition for maximum traceability:**
|
|
378
|
-
|
|
379
|
-
- `Context` and `Notes` MUST be filled for all non-trivial tasks (anything beyond a typo/doc tweak).
|
|
380
|
-
- `Verify Steps` MUST be filled for tasks that require verify (default tags: `code`, `backend`, `frontend`) and for `spike`.
|
|
381
|
-
|
|
382
|
-
## Section content contract (practical)
|
|
383
|
-
|
|
384
|
-
Use `agentplane task doc set` / `agentplane task plan set` (no manual README edits).
|
|
385
|
-
|
|
386
|
-
### Summary
|
|
387
|
-
|
|
388
|
-
- What is being changed (one paragraph).
|
|
389
|
-
- What success looks like.
|
|
390
|
-
|
|
391
|
-
### Context
|
|
392
|
-
|
|
393
|
-
- Why the change is needed.
|
|
394
|
-
- Constraints, assumptions, related tasks/PRs/issues.
|
|
395
|
-
|
|
396
|
-
### Scope
|
|
397
|
-
|
|
398
|
-
- In-scope paths/files/components.
|
|
399
|
-
- Explicit out-of-scope items.
|
|
400
|
-
|
|
401
|
-
### Plan
|
|
402
|
-
|
|
403
|
-
- Ordered steps with implementation checkpoints.
|
|
404
|
-
- Any migration steps and rollback checkpoints.
|
|
405
|
-
|
|
406
|
-
### Risks
|
|
407
|
-
|
|
408
|
-
- Key risks + mitigations.
|
|
409
|
-
- Any potential breaking changes.
|
|
410
|
-
|
|
411
|
-
### Verify Steps
|
|
83
|
+
## TOOLING
|
|
412
84
|
|
|
413
|
-
-
|
|
414
|
-
-
|
|
415
|
-
-
|
|
416
|
-
|
|
417
|
-
### Rollback Plan
|
|
418
|
-
|
|
419
|
-
- How to revert safely (commands or steps).
|
|
420
|
-
|
|
421
|
-
### Notes (use structured subheadings)
|
|
422
|
-
|
|
423
|
-
Use `## Notes` to log:
|
|
424
|
-
|
|
425
|
-
- `### Approvals / Overrides` (if any)
|
|
426
|
-
- `### Decisions` (trade-offs, why X not Y)
|
|
427
|
-
- `### Implementation Notes` (what changed, file list, key diffs)
|
|
428
|
-
- `### Evidence / Links` (commit hashes, PR links, logs if needed)
|
|
429
|
-
|
|
430
|
-
## Plan approval per task (when required)
|
|
431
|
-
|
|
432
|
-
If config sets `agents.approvals.require_plan=true`:
|
|
433
|
-
|
|
434
|
-
- The implementer fills `## Plan` (use `agentplane task plan set <task-id> ...`) and `## Verify Steps`.
|
|
435
|
-
- ORCHESTRATOR approves with `agentplane task plan approve <task-id> --by ORCHESTRATOR [--note "..."]`.
|
|
436
|
-
- No one may `agentplane start <task-id>` until the plan is approved (unless explicitly overridden by user).
|
|
437
|
-
|
|
438
|
-
## Two-stage verification (Verify Steps -> Verification)
|
|
439
|
-
|
|
440
|
-
- `## Verify Steps` is the **ex-ante verification contract**: instructions and pass criteria addressed to the verifier.
|
|
441
|
-
- `## Verification` is the **ex-post verification log**: append-only entries written by `agentplane verify ...`.
|
|
442
|
-
- Do not hand-edit `## Verification` entries. Treat them as audit records.
|
|
443
|
-
- For tasks with verify-required primary tags (default: `code`, `data`, `ops`) and for `spike`, `agentplane task plan approve`
|
|
444
|
-
will block until `## Verify Steps` is filled (the placeholder `<!-- TODO: FILL VERIFY STEPS -->` is treated as empty).
|
|
445
|
-
- Use `agentplane task verify-show <task-id>` to print the current `## Verify Steps` to stdout.
|
|
446
|
-
|
|
447
|
-
## Spike -> implementation convention
|
|
448
|
-
|
|
449
|
-
- A spike task is identified by tag `spike` (schema-free).
|
|
450
|
-
- A spike must define clear exit criteria in `## Verify Steps` and must capture outcomes in `## Notes` (Findings/Decision/Next Steps).
|
|
451
|
-
- `agentplane task derive <spike-id> ...` creates an implementation task that depends on the spike via `depends_on: [<spike-id>]`.
|
|
452
|
-
|
|
453
|
-
## Updating task docs
|
|
454
|
-
|
|
455
|
-
- Workflow/task artifacts (task READMEs, PR artifacts, task exports) must be updated via `agentplane` commands, not manual edits.
|
|
456
|
-
- Task README updates must be done via `agentplane task doc set ...` / `agentplane task plan set ...`.
|
|
457
|
-
- Manual edits to `.agentplane/tasks/<task-id>/README.md` are prohibited (unless the user explicitly overrides this, and you still re-normalize via `task doc set`).
|
|
85
|
+
- Use `## COMMANDS` as the canonical command source.
|
|
86
|
+
- Use `docs/user/agent-bootstrap.generated.mdx` as the canonical startup path for agent onboarding.
|
|
87
|
+
- For policy changes, routing validation MUST pass via `node .agentplane/policy/check-routing.mjs`.
|
|
458
88
|
|
|
459
89
|
---
|
|
460
90
|
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
- Commits and pushes must go through `agentplane` commands (no direct `git commit`/`git push`) unless explicitly overridden.
|
|
464
|
-
|
|
465
|
-
## Commit message semantics (canonical)
|
|
466
|
-
|
|
467
|
-
There are two supported modes:
|
|
468
|
-
|
|
469
|
-
### Mode 1: Explicit commit message (manual message, still policy-governed)
|
|
91
|
+
## LOAD RULES
|
|
470
92
|
|
|
471
|
-
|
|
93
|
+
Routing is strict. Load only modules that match the current task.
|
|
472
94
|
|
|
473
|
-
|
|
95
|
+
### Always imports for mutating tasks
|
|
474
96
|
|
|
475
|
-
|
|
97
|
+
Condition: task includes mutation (file edits, task-state changes, commits, merge/integrate, release/publish).
|
|
476
98
|
|
|
477
|
-
-
|
|
478
|
-
-
|
|
99
|
+
- `@.agentplane/policy/security.must.md`
|
|
100
|
+
- `@.agentplane/policy/dod.core.md`
|
|
479
101
|
|
|
480
|
-
###
|
|
102
|
+
### Conditional imports (linear IF -> LOAD contract)
|
|
481
103
|
|
|
482
|
-
|
|
104
|
+
1. IF `workflow_mode=direct` THEN LOAD `@.agentplane/policy/workflow.direct.md`.
|
|
105
|
+
2. IF `workflow_mode=branch_pr` THEN LOAD `@.agentplane/policy/workflow.branch_pr.md`.
|
|
106
|
+
3. IF task touches release/version/publish THEN LOAD `@.agentplane/policy/workflow.release.md`.
|
|
107
|
+
4. IF task runs `agentplane upgrade` or touches `.agentplane/.upgrade/**` THEN LOAD `@.agentplane/policy/workflow.upgrade.md`.
|
|
108
|
+
5. IF task modifies implementation code paths THEN LOAD `@.agentplane/policy/dod.code.md`.
|
|
109
|
+
6. IF task modifies docs/policy-only paths (`AGENTS.md`, docs, `.agentplane/policy/**`) THEN LOAD `@.agentplane/policy/dod.docs.md`.
|
|
110
|
+
7. IF task modifies policy files (`AGENTS.md` or `.agentplane/policy/**`) THEN LOAD `@.agentplane/policy/governance.md`.
|
|
111
|
+
8. IF task modifies `.agentplane/policy/incidents.md` THEN LOAD `@.agentplane/policy/incidents.md`.
|
|
483
112
|
|
|
484
|
-
|
|
485
|
-
- `--status-commit` (only when explicitly intended)
|
|
113
|
+
Routing examples:
|
|
486
114
|
|
|
487
|
-
|
|
115
|
+
- Example (docs-only task): rules `1|6` apply in `direct`; do not load `dod.code.md`.
|
|
116
|
+
- Example (upgrade task): rules `4|7` apply plus workflow mode rule.
|
|
488
117
|
|
|
489
|
-
|
|
490
|
-
- major transitions for status/comment-driven commits: `TODO->DOING`, `DOING->BLOCKED`, `BLOCKED->DOING`, `DOING->DONE`.
|
|
491
|
-
- agentplane adds a short structured commit body (`Task` / `Primary` / `Status` / `Comment`) automatically for comment-driven commits.
|
|
118
|
+
Routing constraints:
|
|
492
119
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
`<suffix>` rules:
|
|
498
|
-
|
|
499
|
-
- Task commits: `<suffix>` must equal the task id suffix (e.g. task `202601010101-ABCDEF` -> `ABCDEF`).
|
|
500
|
-
- Non-task commits: `<suffix>` may be omitted. Preferred: `<emoji> <scope>: <summary>`.
|
|
501
|
-
- Optional explicit non-task suffix: `DEV` is allowed as `<emoji> DEV <scope>: <summary>`.
|
|
502
|
-
|
|
503
|
-
Recommended action/status emojis:
|
|
504
|
-
|
|
505
|
-
- `🚧` start / DOING
|
|
506
|
-
- `⛔` blocked / BLOCKED
|
|
507
|
-
- `✅` finish / DONE
|
|
508
|
-
|
|
509
|
-
Executor agent emoji policy (status/comment-driven commits):
|
|
510
|
-
|
|
511
|
-
- In `workflow_mode=direct`, status/comment-driven commits prefer the active `work start` lock (`.agentplane/cache/direct-work.json`) when present.
|
|
512
|
-
- The emoji for status/comment-driven commits is derived from the executor agent id (recorded by `agentplane work start ... --agent <ID>`).
|
|
513
|
-
- Users may override the emoji per agent by adding `commit_emoji` to `.agentplane/agents/<ID>.json`.
|
|
514
|
-
- Finish commits MUST use `✅` (enforced by CLI and by the `commit-msg` hook for agentplane-generated commits).
|
|
515
|
-
|
|
516
|
-
Agents must not reinterpret `-m` as "body-only" or "comment-only". `-m` is a commit message.
|
|
517
|
-
|
|
518
|
-
## Allowlist staging (guardrails)
|
|
519
|
-
|
|
520
|
-
- Prefer a tight allowlist for staging/commit (path prefixes).
|
|
521
|
-
- If agentplane provides a suggestion command (e.g., `guard suggest-allow`), use it.
|
|
120
|
+
- MUST NOT load unrelated policy modules.
|
|
121
|
+
- MUST NOT use wildcard policy paths.
|
|
122
|
+
- MUST keep loaded policy set minimal (target: 2-4 files per task).
|
|
123
|
+
- If routing is ambiguous, ask one clarifying question before loading extra modules.
|
|
522
124
|
|
|
523
125
|
---
|
|
524
126
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
Always follow `workflow_mode` from `.agentplane/config.json`.
|
|
528
|
-
|
|
529
|
-
## A) direct mode (single checkout)
|
|
530
|
-
|
|
531
|
-
Rules:
|
|
532
|
-
|
|
533
|
-
- Do all work in the current checkout.
|
|
534
|
-
- In `direct` (single working directory), agentplane uses a single-stream workflow in the current checkout. `agentplane work start <task-id> --agent <ROLE> --slug <slug>` records the active task and keeps the current branch (no task branches).
|
|
535
|
-
- Do not use worktrees in `direct`. `agentplane work start ... --worktree` is `branch_pr`-only.
|
|
536
|
-
- Use `agentplane task scaffold <task-id>` only for backfill/import/manual repair; for normal updates use `agentplane task doc set` / `agentplane task plan set`.
|
|
127
|
+
## MUST / MUST NOT
|
|
537
128
|
|
|
538
|
-
|
|
129
|
+
- MUST start with ORCHESTRATOR preflight and plan summary.
|
|
130
|
+
- MUST NOT perform mutating actions before explicit user approval.
|
|
131
|
+
- MUST create/reuse executable task IDs for any repo-state mutation.
|
|
132
|
+
- MUST use `agentplane` commands for task lifecycle updates; MUST NOT manually edit `.agentplane/tasks.json`.
|
|
133
|
+
- MUST run `agentplane task plan approve ...` and `agentplane task start-ready ...` sequentially (never in parallel).
|
|
134
|
+
- MUST keep repository artifacts in English by default (unless user explicitly requests another language for a specific artifact).
|
|
135
|
+
- MUST NOT fabricate repository facts.
|
|
136
|
+
- MUST stage/commit only intentional changes for the active task scope.
|
|
137
|
+
- MUST stop and request re-approval when scope, risk, or verification criteria materially drift.
|
|
539
138
|
|
|
540
|
-
|
|
541
|
-
2. `start` task (status comment; no commit by default)
|
|
542
|
-
3. Implement changes
|
|
543
|
-
4. Run verify commands / `agentplane verify`
|
|
544
|
-
5. Commit via agentplane with tight allowlist
|
|
545
|
-
6. `finish` with `--commit <git-rev>` and a Verified body
|
|
546
|
-
7. `task export` (if required)
|
|
139
|
+
Role boundaries:
|
|
547
140
|
|
|
548
|
-
|
|
141
|
+
- ORCHESTRATOR: preflight + plan + approvals.
|
|
142
|
+
- PLANNER: executable task graph creation/update.
|
|
143
|
+
- INTEGRATOR: base integration/finish in `branch_pr`.
|
|
549
144
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
- Planning and closure occur only on the pinned base branch in the root checkout.
|
|
553
|
-
- Implementation occurs only on per-task branch + worktree.
|
|
554
|
-
- **Single-writer rule:** at any time, only one agent may write to a given task worktree; others contribute via `pr note` / review.
|
|
145
|
+
---
|
|
555
146
|
|
|
556
|
-
|
|
147
|
+
## CORE DOD
|
|
557
148
|
|
|
558
|
-
|
|
559
|
-
- The base branch should receive a single squash commit per task (integration owned by INTEGRATOR).
|
|
149
|
+
A task is done only when all are true:
|
|
560
150
|
|
|
561
|
-
|
|
151
|
+
1. Approved scope is satisfied; no unresolved drift.
|
|
152
|
+
2. Required checks from loaded policy modules passed.
|
|
153
|
+
3. Security and approval gates were respected.
|
|
154
|
+
4. Traceability exists (task ID + updated task docs).
|
|
155
|
+
5. Verification evidence is recorded.
|
|
156
|
+
6. No unintended tracked changes remain.
|
|
562
157
|
|
|
563
|
-
|
|
158
|
+
Detailed DoD rules are in `.agentplane/policy/dod.core.md`, `.agentplane/policy/dod.code.md`, and `.agentplane/policy/dod.docs.md`.
|
|
564
159
|
|
|
565
160
|
---
|
|
566
161
|
|
|
567
|
-
|
|
162
|
+
## SIZE BUDGET
|
|
568
163
|
|
|
569
|
-
-
|
|
570
|
-
-
|
|
164
|
+
- `AGENTS.md` MUST stay <= 250 lines.
|
|
165
|
+
- Every policy markdown module under `.agentplane/policy/*.md` MUST stay <= 100 lines.
|
|
166
|
+
- Worst-case loaded policy graph (always imports + all conditional imports) MUST stay <= 600 lines.
|
|
167
|
+
- Enforced by `node .agentplane/policy/check-routing.mjs`.
|
|
571
168
|
|
|
572
169
|
---
|
|
573
170
|
|
|
574
|
-
|
|
171
|
+
## CANONICAL DOCS
|
|
575
172
|
|
|
576
|
-
-
|
|
577
|
-
-
|
|
578
|
-
-
|
|
173
|
+
- DOC `.agentplane/policy/workflow.md`
|
|
174
|
+
- DOC `.agentplane/policy/workflow.direct.md`
|
|
175
|
+
- DOC `.agentplane/policy/workflow.branch_pr.md`
|
|
176
|
+
- DOC `.agentplane/policy/workflow.release.md`
|
|
177
|
+
- DOC `.agentplane/policy/workflow.upgrade.md`
|
|
178
|
+
- DOC `.agentplane/policy/security.must.md`
|
|
179
|
+
- DOC `.agentplane/policy/dod.core.md`
|
|
180
|
+
- DOC `.agentplane/policy/dod.code.md`
|
|
181
|
+
- DOC `.agentplane/policy/dod.docs.md`
|
|
182
|
+
- DOC `.agentplane/policy/governance.md`
|
|
183
|
+
- DOC `.agentplane/policy/incidents.md`
|
|
579
184
|
|
|
580
185
|
---
|
|
581
186
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
Re-approval is required if any of the following becomes true:
|
|
585
|
-
|
|
586
|
-
- Scope expands beyond the approved in-scope paths/artifacts.
|
|
587
|
-
- New tasks are needed that were not in the approved task graph plan.
|
|
588
|
-
- Any network or outside-repo access becomes necessary (and was not approved).
|
|
589
|
-
- Verification criteria change materially.
|
|
590
|
-
- Plan changes materially for an in-flight task (update plan -> plan approval returns to pending).
|
|
591
|
-
- Guardrails require `--force` to proceed.
|
|
592
|
-
- Verification fails and remediation would change scope or risk profile.
|
|
187
|
+
## REFERENCE EXAMPLES
|
|
593
188
|
|
|
594
|
-
|
|
189
|
+
- EXAMPLE `.agentplane/policy/examples/pr-note.md`
|
|
190
|
+
- EXAMPLE `.agentplane/policy/examples/unit-test-pattern.md`
|
|
191
|
+
- EXAMPLE `.agentplane/policy/examples/migration-note.md`
|
|
595
192
|
|
|
596
193
|
---
|
|
597
194
|
|
|
598
|
-
|
|
195
|
+
## CHANGE CONTROL
|
|
599
196
|
|
|
600
|
-
-
|
|
601
|
-
-
|
|
197
|
+
- Follow incident-log, immutability, and policy-budget rules in `.agentplane/policy/governance.md`.
|
|
198
|
+
- Record situational incident rules only in `.agentplane/policy/incidents.md`.
|
|
199
|
+
- Keep `AGENTS.md` as a gateway; move detailed procedures to canonical modules.
|