waypoint-codex 0.18.2 → 0.19.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/README.md CHANGED
@@ -133,14 +133,14 @@ This helps the agent keep moving until the work is actually ready, not just
133
133
  Waypoint treats user corrections as product input, not just conversation noise.
134
134
 
135
135
  When the user corrects behavior, rules, or workflow, the agent is pushed to
136
- update the right durable files so the same issue is less likely to happen
136
+ update the right durable layer so the same issue is less likely to happen
137
137
  again.
138
138
 
139
139
  That includes:
140
140
 
141
- - user-scoped guidance
142
- - project-scoped guidance
143
- - repo-local skills
141
+ - user-scoped guidance for true cross-project standing rules
142
+ - project-scoped guidance for durable repo-wide context and always-on rules
143
+ - repo-local skills for workflow-specific or method-specific guidance
144
144
  - retrospectives that turn friction from the current conversation into lasting
145
145
  improvements
146
146
 
@@ -163,6 +163,7 @@ Waypoint scaffolds a Codex-friendly repo around a few core pieces:
163
163
 
164
164
  - `AGENTS.md` for the project-scoped startup contract and durable repo guidance
165
165
  - `.waypoint/WORKSPACE.md` for live operational state
166
+ - `.waypoint/ACTIVE_PLANS.md` for the currently approved plan and active phase checkpoints
166
167
  - `.waypoint/docs/` for long-lived project docs
167
168
  - `.waypoint/plans/` for durable plan documents
168
169
  - `.waypoint/DOCS_INDEX.md` for docs and plans routing, so the agent knows what
@@ -186,6 +187,7 @@ The continuity story matters:
186
187
 
187
188
  - `.waypoint/DOCS_INDEX.md` helps the agent find the right docs before work
188
189
  - `.waypoint/WORKSPACE.md` helps the next session understand what is in flight
190
+ - `.waypoint/ACTIVE_PLANS.md` keeps the currently approved plan visible during execution
189
191
  - `.waypoint/context/RECENT_THREAD.md` helps the agent retain the important
190
192
  parts of the previous conversation
191
193
 
@@ -237,6 +239,7 @@ repo/
237
239
  ├── DOCS_INDEX.md
238
240
  ├── TRACKS_INDEX.md
239
241
  ├── WORKSPACE.md
242
+ ├── ACTIVE_PLANS.md
240
243
  ├── docs/
241
244
  ├── plans/
242
245
  ├── track/
package/dist/src/core.js CHANGED
@@ -11,6 +11,7 @@ const DEFAULT_PLANS_DIR = ".waypoint/plans";
11
11
  const DEFAULT_TRACK_DIR = ".waypoint/track";
12
12
  const DEFAULT_TRACKS_INDEX = ".waypoint/TRACKS_INDEX.md";
13
13
  const DEFAULT_WORKSPACE = ".waypoint/WORKSPACE.md";
14
+ const DEFAULT_ACTIVE_PLANS = ".waypoint/ACTIVE_PLANS.md";
14
15
  const GITIGNORE_WAYPOINT_START = "# Waypoint state";
15
16
  const GITIGNORE_WAYPOINT_END = "# End Waypoint state";
16
17
  const LEGACY_WAYPOINT_GITIGNORE_RULES = new Set([
@@ -43,6 +44,7 @@ const LEGACY_WAYPOINT_GITIGNORE_RULES = new Set([
43
44
  ".waypoint/README.md",
44
45
  ".waypoint/SOUL.md",
45
46
  ".waypoint/WORKSPACE.md",
47
+ ".waypoint/ACTIVE_PLANS.md",
46
48
  ".waypoint/agent-operating-manual.md",
47
49
  ".waypoint/",
48
50
  ".waypoint/DOCS_INDEX.md",
@@ -76,6 +78,7 @@ const SHIPPED_SKILL_NAMES = [
76
78
  "backend-ship-audit",
77
79
  ];
78
80
  const TIMESTAMPED_WORKSPACE_SECTIONS = new Set([
81
+ "## Active Plans",
79
82
  "## Active Trackers",
80
83
  "## Current State",
81
84
  "## In Progress",
@@ -382,6 +385,7 @@ export function initRepository(projectRoot, options) {
382
385
  scaffoldWaypointOptionalTemplates(projectRoot);
383
386
  writeText(path.join(projectRoot, DEFAULT_CONFIG_PATH), renderWaypointConfig(config));
384
387
  writeIfMissing(path.join(projectRoot, DEFAULT_WORKSPACE), readTemplate("WORKSPACE.md"));
388
+ writeIfMissing(path.join(projectRoot, DEFAULT_ACTIVE_PLANS), readTemplate(".waypoint/ACTIVE_PLANS.md"));
385
389
  ensureDir(path.join(projectRoot, DEFAULT_DOCS_DIR));
386
390
  ensureDir(path.join(projectRoot, DEFAULT_PLANS_DIR));
387
391
  ensureDir(path.join(projectRoot, DEFAULT_TRACK_DIR));
@@ -400,7 +404,7 @@ export function initRepository(projectRoot, options) {
400
404
  return [
401
405
  "Initialized Waypoint scaffold",
402
406
  "Installed managed AGENTS block",
403
- "Created .waypoint/WORKSPACE.md, .waypoint/docs/, .waypoint/plans/, and .waypoint/track/ scaffold",
407
+ "Created .waypoint/WORKSPACE.md, .waypoint/ACTIVE_PLANS.md, .waypoint/docs/, .waypoint/plans/, and .waypoint/track/ scaffold",
404
408
  "Installed repo-local Waypoint skills",
405
409
  "Installed coding/reviewer agents and project Codex config",
406
410
  "Generated .waypoint/DOCS_INDEX.md and .waypoint/TRACKS_INDEX.md",
@@ -483,6 +487,7 @@ export function doctorRepository(projectRoot) {
483
487
  const workspaceText = readFileSync(workspacePath, "utf8");
484
488
  for (const section of [
485
489
  "## Active Goal",
490
+ "## Active Plans",
486
491
  "## Active Trackers",
487
492
  "## Current State",
488
493
  "## In Progress",
@@ -622,6 +627,25 @@ export function doctorRepository(projectRoot) {
622
627
  paths: [tracksIndexPath],
623
628
  });
624
629
  }
630
+ const activePlansPath = path.join(projectRoot, DEFAULT_ACTIVE_PLANS);
631
+ if (!existsSync(activePlansPath)) {
632
+ findings.push({
633
+ severity: "error",
634
+ category: "workspace",
635
+ message: ".waypoint/ACTIVE_PLANS.md is missing.",
636
+ remediation: "Run `waypoint init` to scaffold the active plans file.",
637
+ paths: [activePlansPath],
638
+ });
639
+ }
640
+ else if (existsSync(workspacePath) && !readFileSync(workspacePath, "utf8").includes(DEFAULT_ACTIVE_PLANS)) {
641
+ findings.push({
642
+ severity: "warn",
643
+ category: "workspace",
644
+ message: "Workspace does not reference .waypoint/ACTIVE_PLANS.md under `## Active Plans`.",
645
+ remediation: "Point `## Active Plans` at `.waypoint/ACTIVE_PLANS.md` and summarize the current active phase.",
646
+ paths: [workspacePath, activePlansPath],
647
+ });
648
+ }
625
649
  if (existsSync(workspacePath) &&
626
650
  tracksIndex.activeTrackPaths.length > 0 &&
627
651
  !tracksIndex.activeTrackPaths.some((trackPath) => readFileSync(workspacePath, "utf8").includes(trackPath))) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "waypoint-codex",
3
- "version": "0.18.2",
3
+ "version": "0.19.1",
4
4
  "description": "Make Codex better by default with stronger planning, code quality, reviews, tracking, and repo guidance.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -58,8 +58,9 @@ If the plan is not actually settled, stop and use `planning` instead of guessing
58
58
 
59
59
  ## Step 3: Implement In Small Verified Chunks
60
60
 
61
- - Make the change in small logical chunks.
62
- - Commit in small steps when the repo workflow benefits from granular history.
61
+ - Make the change in small logical chunks inside the current approved plan phase.
62
+ - Batch related edits into a meaningful phase slice before running heavyweight checks, reviewer passes, or a commit.
63
+ - Commit at phase boundaries or other meaningful checkpoints when the repo workflow benefits from granular history.
63
64
  - Keep unrelated local changes intact.
64
65
  - Do not stop after the first implementation pass if clear follow-up fixes are still needed.
65
66
 
@@ -77,10 +78,10 @@ Use the repo's existing skills and reviewer agents instead of inventing a parall
77
78
 
78
79
  If the repo ships reviewer agents under `.codex/agents/`, use them in the closeout flow when they are available:
79
80
 
80
- - run `code-reviewer` for every non-trivial implementation slice before declaring the work clear
81
+ - run `code-reviewer` for every non-trivial completed phase before declaring the work clear
81
82
  - run `code-health-reviewer` when the change is medium or large, especially when it adds structure, duplicates logic, or introduces new abstractions
82
83
  - launch them in parallel when both apply
83
- - use them at meaningful milestones, not only at the very end: after substantial implementation chunks, before opening or materially updating a PR, after fixing substantial findings, and before final closeout
84
+ - use them at phase checkpoints, not only at the very end: after completing a substantial phase, before opening or materially updating a PR, after fixing substantial findings, and before final closeout
84
85
  - treat them as fresh closeout passes, not as optional decoration
85
86
  - if either reviewer finds anything more serious than obvious optional polish, fix those findings, rerun the most relevant verification, and run fresh reviewer passes instead of trusting stale results
86
87
  - keep iterating until the remaining reviewer feedback is only nitpicks or none
@@ -97,13 +98,21 @@ If those reviewer agents are not present in the repo, do the equivalent closeout
97
98
 
98
99
  If an existing repo-local skill clearly matches the verification surface, use it.
99
100
 
100
- ## Step 6: Run The Full Pre-Push Loop
101
+ ## Step 6: Run The Phase Checkpoint And Pre-Push Loop
101
102
 
102
- - Run the required tests and typechecks for every touched package or service.
103
- - Run builds, lint, migrations, or focused smoke tests when they are part of the real risk surface.
104
- - Fix failing checks before pushing unless the user explicitly accepts an exception.
105
- - For user-facing flows, do at least one realistic manual or UI-driven pass beyond pure unit coverage.
106
- - Update `WORKSPACE.md` and any active tracker with the current verification state before moving on.
103
+ At the end of each completed phase:
104
+
105
+ - run the required tests and typechecks for the touched package or service
106
+ - run builds, lint, migrations, or focused smoke tests when they are part of the real risk surface
107
+ - run the relevant reviewer-agent passes for non-trivial work
108
+ - fix failing checks and reviewer findings before moving to the next phase
109
+ - rerun the checkpoint until the current phase is clean
110
+ - update `WORKSPACE.md`, `.waypoint/ACTIVE_PLANS.md`, and any active tracker with the current verification state before moving on
111
+
112
+ Before pushing:
113
+
114
+ - make sure the latest completed phase checkpoint is still green
115
+ - for user-facing flows, do at least one realistic manual or UI-driven pass beyond pure unit coverage
107
116
 
108
117
  Do not push a branch that still obviously fails its own touched-surface checks.
109
118
 
@@ -28,9 +28,10 @@ Before planning:
28
28
  1. Read `.waypoint/SOUL.md`
29
29
  2. Read `.waypoint/agent-operating-manual.md`
30
30
  3. Read `.waypoint/WORKSPACE.md`
31
- 4. Read `.waypoint/context/MANIFEST.md`
32
- 5. Read every file listed in the manifest
33
- 6. Read the routed docs relevant to the task
31
+ 4. Read `.waypoint/ACTIVE_PLANS.md`
32
+ 5. Read `.waypoint/context/MANIFEST.md`
33
+ 6. Read every file listed in the manifest
34
+ 7. Read the routed docs relevant to the task
34
35
 
35
36
  ## Output Location
36
37
 
@@ -40,6 +41,7 @@ The plan belongs in the repo, not only in chat.
40
41
  - Choose the smallest routed location that matches the work, such as a project plan, implementation plan, or focused design note.
41
42
  - If a relevant plan doc already exists, update it instead of creating a competing one.
42
43
  - Make sure the doc remains discoverable through the routed docs layer.
44
+ - Update `.waypoint/ACTIVE_PLANS.md` when this plan becomes the approved active plan or when its current phase changes.
43
45
  - In chat, return only a concise summary plus the path to the plan doc.
44
46
 
45
47
  If the planned implementation will be large, multi-step, or likely to span multiple sessions, also create or update a tracker under `.waypoint/track/` and link it from `WORKSPACE.md` before implementation begins.
@@ -102,8 +104,10 @@ Plans document your understanding. Include what matters for this task:
102
104
  - **Current State**: What exists today — relevant files, data flows, constraints, existing patterns
103
105
  - **Changes**: Every file to create/modify/delete, how changes connect
104
106
  - **Decisions**: Why this approach, tradeoffs, assumptions
107
+ - **Phase breakdown**: Distinct execution phases in the order they should happen
105
108
  - **Scope checklist**: Concrete implementation items that can be marked done or not done
106
- - **Acceptance criteria**: What must be true when each step is "done"
109
+ - **Acceptance criteria**: What must be true when each phase is "done"
110
+ - **Phase checkpoints**: What verification, reviewer passes, tests, typechecks, builds, or manual QA must pass before moving to the next phase
107
111
  - **Test cases**: For behavioral changes, include input -> expected output examples
108
112
  - **Non-Goals**: Explicitly out of scope to prevent implementation drift
109
113
 
@@ -127,6 +131,7 @@ Before presenting the plan, verify against real code:
127
131
  - No literal code unless the user explicitly wants it
128
132
  - No pretending you verified something you didn't
129
133
  - Approved scope must be explicit enough to act as an execution contract after user approval
134
+ - The plan must be explicit enough to support phase-by-phase execution and checkpoints without rediscovering the intended order in chat
130
135
  - If the user approves the plan, do not silently defer or drop checklist items later; discuss any proposed scope change first
131
136
 
132
137
  If the change touches durable project behavior, include docs/workspace updates in the plan.
@@ -143,10 +148,12 @@ A good durable plan doc usually includes:
143
148
  1. Current state
144
149
  2. Proposed changes
145
150
  3. Decisions and tradeoffs
146
- 4. Scope checklist
147
- 5. Acceptance criteria
148
- 6. Verification
149
- 7. TL;DR
151
+ 4. Phase breakdown
152
+ 5. Scope checklist
153
+ 6. Acceptance criteria
154
+ 7. Phase checkpoints
155
+ 8. Verification
156
+ 9. TL;DR
150
157
 
151
158
  ## Final Response
152
159
 
@@ -156,7 +163,8 @@ When the plan doc is written:
156
163
  - include the doc path
157
164
  - call out any unresolved decisions that still need the user's input
158
165
  - if there are no unresolved decisions and the user approves the plan, treat that approval as authorization to execute the plan end to end rather than asking again at each obvious next step
159
- - once approved, use the plan's checklist and acceptance criteria to decide whether the work is actually done; if anything approved is skipped, report that as partial work or ask to change scope instead of calling it complete
166
+ - once approved, update `.waypoint/ACTIVE_PLANS.md` so the active plan, current phase, and current checkpoint are visible during execution
167
+ - once approved, use the plan's checklist, phase checkpoints, and acceptance criteria to decide whether the work is actually done; if anything approved is skipped, report that as partial work or ask to change scope instead of calling it complete
160
168
 
161
169
  ## Quality Bar
162
170
 
@@ -26,9 +26,10 @@ Before tracking:
26
26
  1. Read `.waypoint/SOUL.md`
27
27
  2. Read `.waypoint/agent-operating-manual.md`
28
28
  3. Read `.waypoint/WORKSPACE.md`
29
- 4. Read `.waypoint/context/MANIFEST.md`
30
- 5. Read every file listed in that manifest
31
- 6. Read `.waypoint/track/README.md`
29
+ 4. Read `.waypoint/ACTIVE_PLANS.md`
30
+ 5. Read `.waypoint/context/MANIFEST.md`
31
+ 6. Read every file listed in that manifest
32
+ 7. Read `.waypoint/track/README.md`
32
33
 
33
34
  ## When A Tracker Is Required
34
35
 
@@ -84,6 +85,7 @@ A good tracker usually includes:
84
85
  - `Current State`
85
86
  - `Next`
86
87
  - `Workstreams`
88
+ - `Phase Checkpoints`
87
89
  - `Verification`
88
90
  - `Decisions`
89
91
  - `Notes`
@@ -93,8 +95,10 @@ Use `- [ ]` checkboxes when there are many concrete tasks to track. Use status-s
93
95
  ## Step 4: Link It From The Workspace
94
96
 
95
97
  Add or update a bullet under `## Active Trackers` in `.waypoint/WORKSPACE.md` that points at the tracker path and states the current phase or next step.
98
+ If the work is driven by an approved plan, keep `.waypoint/ACTIVE_PLANS.md` aligned with the same phase naming and checkpoint language.
96
99
 
97
100
  `WORKSPACE.md` should answer "what matters right now?"
101
+ `.waypoint/ACTIVE_PLANS.md` should answer "what plan and phase must be followed right now?"
98
102
  The tracker should answer "what exactly is happening across the whole workstream?"
99
103
 
100
104
  ## Step 5: Maintain It During Execution
@@ -22,6 +22,7 @@
22
22
  .waypoint/README.md
23
23
  .waypoint/SOUL.md
24
24
  .waypoint/WORKSPACE.md
25
+ .waypoint/ACTIVE_PLANS.md
25
26
  .waypoint/agent-operating-manual.md
26
27
  .waypoint/DOCS_INDEX.md
27
28
  .waypoint/TRACKS_INDEX.md
@@ -0,0 +1,23 @@
1
+ # Active Plans
2
+
3
+ This file is the live execution-contract layer for approved plans that are currently in flight.
4
+
5
+ Keep it short and current.
6
+
7
+ For each active plan, include:
8
+ - source plan path under `.waypoint/plans/`
9
+ - whether the plan is approved
10
+ - the current phase
11
+ - the checklist or acceptance criteria for that phase
12
+ - what checkpoint must pass before moving to the next phase
13
+ - any explicit non-goals or approved deferrals
14
+
15
+ Rules:
16
+ - Read this file during bootstrap and before meaningful implementation.
17
+ - Follow the approved plan. Do not silently deviate from it.
18
+ - Update this file whenever the active plan, current phase, checkpoint, or approved scope changes.
19
+ - If no approved plan is active, say so plainly here.
20
+
21
+ ## Active Plan
22
+
23
+ - None right now.
@@ -4,6 +4,7 @@ Repo-local Waypoint configuration and project memory files.
4
4
 
5
5
  - `config.toml` — Waypoint feature toggles and file locations
6
6
  - `WORKSPACE.md` — live operational state; new or materially revised entries in multi-topic sections are timestamped
7
+ - `ACTIVE_PLANS.md` — live execution-contract view of the approved plan(s) and current phase checkpoints
7
8
  - `DOCS_INDEX.md` — generated docs and plans routing map
8
9
  - `SOUL.md` — agent identity and working values
9
10
  - `agent-operating-manual.md` — required session workflow
@@ -20,8 +20,9 @@ Bootstrap sequence:
20
20
  2. Read `.waypoint/SOUL.md`
21
21
  3. Read this file
22
22
  4. Read `.waypoint/WORKSPACE.md`
23
- 5. Read `.waypoint/context/MANIFEST.md`
24
- 6. Read every file listed in that manifest
23
+ 5. Read `.waypoint/ACTIVE_PLANS.md`
24
+ 6. Read `.waypoint/context/MANIFEST.md`
25
+ 7. Read every file listed in that manifest
25
26
 
26
27
  Do not skip this sequence.
27
28
 
@@ -37,6 +38,7 @@ The repository should contain the context the next agent needs.
37
38
  - user-scoped `AGENTS.md` is the durable cross-project guidance layer: collaboration preferences, personal workflow rules, and stable defaults that should apply across repos
38
39
  - the repo root `AGENTS.md` is the project-scoped guidance layer: repo-specific context, constraints, and durable rules for this project
39
40
  - `.waypoint/WORKSPACE.md` is the live operational record: in progress, current state, next steps
41
+ - `.waypoint/ACTIVE_PLANS.md` is the live execution-contract record: which approved plan is active, which phase is active, and what checkpoint must pass before moving on
40
42
  - `.waypoint/track/` is the optional execution-tracking layer for active long-running work that genuinely needs durable progress state
41
43
  - `.waypoint/docs/` is the durable project memory: architecture, decisions, integration notes, and debugging knowledge
42
44
  - `.waypoint/plans/` is the durable planning layer: implementation plans, rollout plans, migration plans, and other task-shaped plans worth keeping
@@ -58,11 +60,15 @@ If something important lives only in your head or in the chat transcript, the re
58
60
  - Keep communication concise by default. Lead with the answer, diagnosis, decision, or next step, and include only the most important supporting detail unless the user asks for more.
59
61
  - Honesty means accurate diagnosis, explicit uncertainty, and clear verification limits. It does not mean substituting process language for investigation.
60
62
  - Before making meaningful frontend or backend decisions, inspect the available user-scoped and project-scoped `AGENTS.md` guidance. If the task depends on frontend or backend context that is missing from the project-scoped guidance and routed docs, use the corresponding `*-context-interview` skill to fill that gap instead of guessing.
61
- - Update the user-scoped `AGENTS.md` when you learn a durable preference, workflow rule, or default that should apply across projects and your environment allows you to edit it.
62
- - Update the project-scoped repo `AGENTS.md` when you learn durable repo truth, project constraints, or stable project-specific collaboration rules.
63
+ - Persist corrections and newly learned context in the right durable layer instead of defaulting to `AGENTS.md`.
64
+ - Update the user-scoped `AGENTS.md` only for true cross-project standing preferences or global operating rules.
65
+ - Update the project-scoped repo `AGENTS.md` only for durable repo truth, project constraints, or stable project-wide rules that should always apply in this repo.
66
+ - If the correction is workflow-specific or method-specific, update the relevant skill instead. If no existing skill owns it well, propose creating one instead of stuffing that guidance into `AGENTS.md`.
63
67
  - Treat `.waypoint/WORKSPACE.md` as mandatory live execution state, not end-of-task paperwork.
68
+ - Treat `.waypoint/ACTIVE_PLANS.md` as mandatory live plan state for approved work, not a forgotten side file.
64
69
  - Update `.waypoint/WORKSPACE.md` during the work whenever the active goal, phase, next step, blocker, verification state, or review state materially changes. In multi-topic sections, prefix new or materially revised bullets with a local timestamp like `[2026-03-06 20:10 PST]`.
65
- - Do not wait until final handoff to update workspace state. If the work took enough effort that the next agent would benefit from a current snapshot, the workspace should already say so.
70
+ - Update `.waypoint/ACTIVE_PLANS.md` whenever the active approved plan, current phase, phase checklist, checkpoint, or approved scope changes.
71
+ - Do not wait until final handoff to update workspace or active plan state. If the work took enough effort that the next agent would benefit from a current snapshot, those files should already say so.
66
72
  - For any non-trivial multi-step work, any work likely to span sessions, any work with a meaningful checklist, or any workstream that has already accumulated review/QA follow-ups, create or update a tracker in `.waypoint/track/`, keep detailed execution state there during the work, and point at it from `## Active Trackers` in `.waypoint/WORKSPACE.md`.
67
73
  - If a tracker exists for the workstream, maintain it as the work evolves instead of updating it only at the end.
68
74
  - Update `.waypoint/docs/` when durable project knowledge changes, update `.waypoint/plans/` when durable plans change, and refresh each changed routable doc's `last_updated` field.
@@ -72,7 +78,8 @@ If something important lives only in your head or in the chat transcript, the re
72
78
  - Let skills carry their own invocation guidance. The always-on contract should only keep the high-level rule: use repo-local skills deliberately when they help the current task.
73
79
  - Use the repo-local skills and reviewer agents deliberately, but do not underuse them on work that is expensive to get wrong.
74
80
  - When spawning reviewer agents or other subagents, explicitly set `fork_context: false` and choose the model/reasoning pair that matches the risk and importance of the second pass.
75
- - For non-trivial work, strongly prefer reviewer-agent passes between major implementation milestones, before opening or updating a PR, after fixing substantial findings, and before final closeout when the environment allows those agents to run.
81
+ - For non-trivial work, strongly prefer reviewer-agent passes at phase checkpoints, before opening or materially updating a PR, after fixing substantial findings, and before final closeout when the environment allows those agents to run.
82
+ - Do not run heavyweight reviewer or full-suite loops after every tiny edit. Batch related work into the current approved phase, then run the checkpoint.
76
83
  - If you created a PR earlier in the current session and need to push more work, first confirm that PR is still open. If it is closed, create a fresh branch from `origin/main` and open a fresh PR instead of pushing more commits to the old PR branch.
77
84
  - Treat reviewer agents as one-shot workers: once a reviewer returns findings, read the result and close it. If another review pass is needed later, spawn a fresh reviewer instead of reusing the same thread.
78
85
  - If `code-reviewer` or `code-health-reviewer` surface anything more serious than optional polish, fix the findings, rerun the relevant verification, and launch fresh passes until the remaining feedback is only nitpicks or none.
@@ -89,6 +96,8 @@ If something important lives only in your head or in the chat transcript, the re
89
96
 
90
97
  Once the user has approved a plan or otherwise told you to continue, own the work until the slice is genuinely complete.
91
98
 
99
+ Execute approved work phase by phase. Complete the current phase, run the relevant checkpoint, fix findings, rerun verification, and only then move to the next phase.
100
+
92
101
  That means:
93
102
 
94
103
  - continue through implementation, verification, and required repo-memory updates without asking for incremental permission
@@ -140,7 +149,7 @@ Deliberate closeout review is available when you want a second pass for ship-rea
140
149
  - If you use it, follow the skill's loop fully: define the reviewable slice, run the needed reviewers, wait for the outputs, fix meaningful findings, and rerun fresh passes when warranted.
141
150
  - Treat reviewer agents as one-shot workers. Once a reviewer returns its findings, read the result and close it.
142
151
  - Do not widen the scope casually; keep the second pass anchored to the slice you are actually trying to validate.
143
- - For non-trivial work, the healthy default is to use reviewer passes at meaningful milestones instead of saving all second-pass scrutiny for the very end.
152
+ - For non-trivial work, the healthy default is to use reviewer passes at phase checkpoints instead of saving all second-pass scrutiny for the very end.
144
153
 
145
154
  ## Quality bar
146
155
 
@@ -534,6 +534,22 @@ function writeActiveTrackers(contextDir, projectRoot, activeTracks) {
534
534
  );
535
535
  }
536
536
 
537
+ function writeActivePlans(contextDir, projectRoot) {
538
+ const activePlansPath = path.join(projectRoot, ".waypoint", "ACTIVE_PLANS.md");
539
+ return writeContextFile(
540
+ contextDir,
541
+ "ACTIVE_PLANS.md",
542
+ "Active Plans",
543
+ existsSync(activePlansPath)
544
+ ? [
545
+ "Read this file before meaningful implementation when approved plan work is in flight:",
546
+ "",
547
+ `- \`${path.relative(projectRoot, activePlansPath)}\``,
548
+ ].join("\n")
549
+ : "`.waypoint/ACTIVE_PLANS.md` is missing.",
550
+ );
551
+ }
552
+
537
553
  function main() {
538
554
  const projectRoot = detectProjectRoot();
539
555
  const contextDir = path.join(projectRoot, ".waypoint", "context");
@@ -672,6 +688,7 @@ function main() {
672
688
  ].join("\n")
673
689
  );
674
690
  const recentThreadPath = writeRecentThread(contextDir, projectRoot, threadIdOverride);
691
+ const activePlansPath = writeActivePlans(contextDir, projectRoot);
675
692
  const activeTrackersPath = writeActiveTrackers(contextDir, projectRoot, activeTracks);
676
693
 
677
694
  const manifestPath = path.join(contextDir, "MANIFEST.md");
@@ -691,6 +708,7 @@ function main() {
691
708
  `- \`${path.relative(projectRoot, recentCommitsPath)}\` — recent commits`,
692
709
  `- \`${path.relative(projectRoot, prsPath)}\` — open and recently merged pull requests`,
693
710
  `- \`${path.relative(projectRoot, recentThreadPath)}\` — latest meaningful turns from the local ${codingAgentLabelText} session for this repo`,
711
+ `- \`${path.relative(projectRoot, activePlansPath)}\` — active plan summary`,
694
712
  `- \`${path.relative(projectRoot, docsIndexPath)}\` — current docs index`,
695
713
  `- \`${path.relative(projectRoot, tracksIndexPath)}\` — current tracker index`,
696
714
  `- \`${path.relative(projectRoot, activeTrackersPath)}\` — active tracker summary`,
@@ -700,6 +718,7 @@ function main() {
700
718
  "- `.waypoint/SOUL.md`",
701
719
  "- `.waypoint/agent-operating-manual.md`",
702
720
  "- `.waypoint/WORKSPACE.md`",
721
+ "- `.waypoint/ACTIVE_PLANS.md`",
703
722
  "",
704
723
  "## Active tracker files to read after this manifest",
705
724
  "",
@@ -31,6 +31,10 @@ What outcome this tracker is trying to reach.
31
31
  - [ ] First task
32
32
  - [ ] Second task
33
33
 
34
+ ## Phase Checkpoints
35
+
36
+ - [ ] Checkpoint required before leaving the current phase
37
+
34
38
  ## Verification
35
39
 
36
40
  - [ ] Verification step
@@ -1,11 +1,15 @@
1
1
  # Workspace
2
2
 
3
- Timestamp discipline: Prefix new or materially revised bullets in `Active Trackers`, `Current State`, `In Progress`, `Next`, `Parked`, and `Done Recently` with `[YYYY-MM-DD HH:MM TZ]`.
3
+ Timestamp discipline: Prefix new or materially revised bullets in `Active Plans`, `Active Trackers`, `Current State`, `In Progress`, `Next`, `Parked`, and `Done Recently` with `[YYYY-MM-DD HH:MM TZ]`.
4
4
 
5
5
  ## Active Goal
6
6
 
7
7
  Describe the main thing currently being built or changed.
8
8
 
9
+ ## Active Plans
10
+
11
+ Point at `.waypoint/ACTIVE_PLANS.md` and note the currently active approved plan and phase.
12
+
9
13
  ## Active Trackers
10
14
 
11
15
  List any active tracker docs under `.waypoint/track/`, with the current phase or next step.
@@ -19,8 +19,9 @@ Bootstrap sequence:
19
19
  2. Read `.waypoint/SOUL.md`
20
20
  3. Read `.waypoint/agent-operating-manual.md`
21
21
  4. Read `.waypoint/WORKSPACE.md`
22
- 5. Read `.waypoint/context/MANIFEST.md`
23
- 6. Read every file listed in the manifest
22
+ 5. Read `.waypoint/ACTIVE_PLANS.md`
23
+ 6. Read `.waypoint/context/MANIFEST.md`
24
+ 7. Read every file listed in the manifest
24
25
 
25
26
  This is mandatory, not optional.
26
27
 
@@ -76,7 +77,8 @@ When an explanation is clearer visually, use Mermaid diagrams directly in chat f
76
77
 
77
78
  Delivery expectations:
78
79
  - Keep communication concise by default. Lead with the answer, diagnosis, decision, or next step, and include only the most important supporting detail unless the user asks for more.
79
- - For planned work, define done from the approved scope and acceptance criteria, not from your own sense that the system is already good enough.
80
+ - For planned work, treat `.waypoint/ACTIVE_PLANS.md` as the live execution contract and define done from the approved scope, current phase checkpoint, and acceptance criteria, not from your own sense that the system is already good enough.
81
+ - Execute approved plans phase by phase. Finish the current phase, run the relevant checkpoint, resolve findings, and only then move to the next phase.
80
82
  - When you report back to the user, explain the result in plain, direct language. Say what you changed, what happened, and anything the user actually needs to know, but do not lean on jargon, low-level implementation detail, or code-heavy narration unless the user asks for it.
81
83
  - Write for a smart person who is not looking at the code. The goal is clarity, not technical performance.
82
84
  - This communication rule applies to how you explain the work, not to how you do it. Your actual reasoning, coding, debugging, and verification should stay technical, precise, and rigorous.
@@ -98,16 +100,21 @@ Delivery expectations:
98
100
 
99
101
  Working rules:
100
102
  - Treat `.waypoint/WORKSPACE.md` as a mandatory live execution log, not a closeout chore.
103
+ - Treat `.waypoint/ACTIVE_PLANS.md` as the mandatory live execution-contract file for approved plans.
101
104
  - Update `.waypoint/WORKSPACE.md` during the work whenever the active goal, current phase, next step, blocker, verification state, or handoff context materially changes.
102
- - For multi-step work, keep the workspace moving as you move: do not wait until the end of the task to reconstruct what happened.
105
+ - Update `.waypoint/ACTIVE_PLANS.md` whenever the active approved plan, current phase, phase checklist, checkpoint, or approved scope changes.
106
+ - For multi-step work, keep the workspace and active plan file moving as you move: do not wait until the end of the task to reconstruct what happened.
103
107
  - If a tracker exists for the active workstream, update the tracker during the work as well and keep `WORKSPACE.md` pointing at the current tracker state.
104
- - Update user-scoped `AGENTS.md` when you learn a durable preference, standing rule, or default that should apply across projects and your environment allows you to edit that file
105
- - Update the project-scoped repo `AGENTS.md` when you learn durable repo truth, project constraints, or stable project-specific collaboration rules
106
- - Update `.waypoint/docs/` when durable project knowledge changes, update `.waypoint/plans/` when a durable plan changes, and refresh `last_updated` on touched routable docs
108
+ - Persist corrections and newly learned context in the right durable layer instead of defaulting to `AGENTS.md`.
109
+ - Update user-scoped `AGENTS.md` only for true cross-project standing preferences or global operating rules.
110
+ - Update the project-scoped repo `AGENTS.md` only for durable repo context or project-wide rules that should always apply in this repo.
111
+ - If the correction is workflow-specific or method-specific, update the relevant repo skill instead. If no existing skill owns it well, propose creating one instead of stuffing that guidance into `AGENTS.md`.
112
+ - Update `.waypoint/docs/` when durable project knowledge changes, update `.waypoint/plans/` when a durable plan changes, update `.waypoint/ACTIVE_PLANS.md` when the active approved plan or current phase changes, and refresh `last_updated` on touched routable docs
107
113
  - Keep most work in the main agent. Use repo-local skills, trackers, and reviewer agents when they create clear leverage, not as default ceremony.
108
114
  - Let repo-local skills describe their own triggers. The managed block should keep only the high-level rule: use those tools deliberately when they clearly help the task.
109
- - Use reviewer agents proactively at meaningful milestones when the work is non-trivial, risky, user-facing, merge-bound, or otherwise expensive to get wrong.
110
- - Strong default moments for reviewer-agent passes are: after a meaningful implementation milestone, before opening or updating a PR, after fixing substantial review findings, and before finally calling the work clear.
115
+ - Use reviewer agents proactively at phase checkpoints when the work is non-trivial, risky, user-facing, merge-bound, or otherwise expensive to get wrong.
116
+ - Strong default moments for reviewer-agent passes are: after completing a plan phase, before opening or materially updating a PR, after fixing substantial review findings, and before finally calling the work clear.
117
+ - Do not interrupt implementation for heavyweight checks after every tiny edit. Batch related work into the current plan phase, then run the checkpoint.
111
118
  - When `code-reviewer` or `code-health-reviewer` find anything more serious than obvious optional polish, fix those findings, rerun the relevant verification, and run fresh review passes until the remaining feedback is only nitpicks or none.
112
119
  - Treat `plan-reviewer`, `code-reviewer`, and `code-health-reviewer` as one-shot agents: once a reviewer returns findings, close it; if another pass is needed later, spawn a fresh reviewer instead of reusing the old thread
113
120
  - If you created a PR earlier in the current session and need to push more work, first confirm that PR is still open. If it is closed, create a fresh branch from `origin/main` and open a fresh PR instead of pushing more commits to the old PR branch