waypoint-codex 0.18.2 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/src/core.js +25 -1
- package/package.json +1 -1
- package/templates/.agents/skills/merge-ready-owner/SKILL.md +19 -10
- package/templates/.agents/skills/planning/SKILL.md +17 -9
- package/templates/.agents/skills/work-tracker/SKILL.md +7 -3
- package/templates/.gitignore.snippet +1 -0
- package/templates/.waypoint/ACTIVE_PLANS.md +23 -0
- package/templates/.waypoint/README.md +1 -0
- package/templates/.waypoint/agent-operating-manual.md +11 -4
- package/templates/.waypoint/scripts/prepare-context.mjs +19 -0
- package/templates/.waypoint/track/_template.md +4 -0
- package/templates/WORKSPACE.md +5 -1
- package/templates/managed-agents-block.md +12 -7
package/README.md
CHANGED
|
@@ -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
|
@@ -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
|
-
-
|
|
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
|
|
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
|
|
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
|
|
101
|
+
## Step 6: Run The Phase Checkpoint And Pre-Push Loop
|
|
101
102
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
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/
|
|
32
|
-
5. Read
|
|
33
|
-
6. Read
|
|
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
|
|
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.
|
|
147
|
-
5.
|
|
148
|
-
6.
|
|
149
|
-
7.
|
|
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,
|
|
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/
|
|
30
|
-
5. Read
|
|
31
|
-
6. Read
|
|
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
|
|
@@ -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/
|
|
24
|
-
6. Read
|
|
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
|
|
@@ -61,8 +63,10 @@ If something important lives only in your head or in the chat transcript, the re
|
|
|
61
63
|
- 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
64
|
- Update the project-scoped repo `AGENTS.md` when you learn durable repo truth, project constraints, or stable project-specific collaboration rules.
|
|
63
65
|
- Treat `.waypoint/WORKSPACE.md` as mandatory live execution state, not end-of-task paperwork.
|
|
66
|
+
- Treat `.waypoint/ACTIVE_PLANS.md` as mandatory live plan state for approved work, not a forgotten side file.
|
|
64
67
|
- 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
|
-
-
|
|
68
|
+
- Update `.waypoint/ACTIVE_PLANS.md` whenever the active approved plan, current phase, phase checklist, checkpoint, or approved scope changes.
|
|
69
|
+
- 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
70
|
- 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
71
|
- If a tracker exists for the workstream, maintain it as the work evolves instead of updating it only at the end.
|
|
68
72
|
- 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 +76,8 @@ If something important lives only in your head or in the chat transcript, the re
|
|
|
72
76
|
- 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
77
|
- Use the repo-local skills and reviewer agents deliberately, but do not underuse them on work that is expensive to get wrong.
|
|
74
78
|
- 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
|
|
79
|
+
- 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.
|
|
80
|
+
- 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
81
|
- 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
82
|
- 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
83
|
- 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 +94,8 @@ If something important lives only in your head or in the chat transcript, the re
|
|
|
89
94
|
|
|
90
95
|
Once the user has approved a plan or otherwise told you to continue, own the work until the slice is genuinely complete.
|
|
91
96
|
|
|
97
|
+
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.
|
|
98
|
+
|
|
92
99
|
That means:
|
|
93
100
|
|
|
94
101
|
- continue through implementation, verification, and required repo-memory updates without asking for incremental permission
|
|
@@ -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
|
"",
|
package/templates/WORKSPACE.md
CHANGED
|
@@ -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/
|
|
23
|
-
6. Read
|
|
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,19 @@ 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
|
-
-
|
|
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
108
|
- 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
109
|
- 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
|
|
110
|
+
- 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
111
|
- 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
112
|
- 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
|
|
110
|
-
- Strong default moments for reviewer-agent passes are: after a
|
|
113
|
+
- Use reviewer agents proactively at phase checkpoints when the work is non-trivial, risky, user-facing, merge-bound, or otherwise expensive to get wrong.
|
|
114
|
+
- 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.
|
|
115
|
+
- Do not interrupt implementation for heavyweight checks after every tiny edit. Batch related work into the current plan phase, then run the checkpoint.
|
|
111
116
|
- 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
117
|
- 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
118
|
- 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
|