Skip to content

Commit 38840ac

Browse files
authored
Merge pull request #6 from Significant-Gravitas/main
Updates
2 parents d86692c + 7b5e334 commit 38840ac

278 files changed

Lines changed: 30720 additions & 512 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ jobs:
2121
- name: Run typecheck
2222
run: bun run typecheck
2323

24-
- name: Run tests
25-
run: bun run test
24+
- name: Run tests with coverage
25+
run: bun run test:coverage
2626

2727
- name: Validate docs
2828
run: bun run docs:validate

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ agentprobe-report-*.html
1313
.mypy_cache/
1414
.ruff_cache/
1515
.env
16+
.coverage
17+
coverage/

WORKFLOW.md

Lines changed: 127 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ agent:
1818
max_turns: 20
1919
---
2020

21+
2122
You are working on a Linear ticket `{{ issue.identifier }}`
2223

2324
{% if attempt %}
@@ -31,7 +32,6 @@ Continuation context:
3132

3233
Issue context:
3334
Identifier: {{ issue.identifier }}
34-
Project: {{ issue.project_name }} ({{ issue.project_slug }})
3535
Title: {{ issue.title }}
3636
Current status: {{ issue.state }}
3737
Labels: {{ issue.labels }}
@@ -113,14 +113,14 @@ The agent should be able to talk to Linear, either via a configured Linear MCP s
113113
- Create a fresh branch from `origin/main` and restart execution flow as a new attempt.
114114
5. For `Todo` tickets, do startup sequencing in this exact order:
115115
- `update_issue(..., state: "In Progress")`
116-
- find/create `## Symphony Workpad` bootstrap comment
116+
- find/create `## Codex Workpad` bootstrap comment
117117
- only then begin analysis/planning/implementation work.
118118
6. Add a short comment if state and issue content are inconsistent, then proceed with the safest flow.
119119

120120
## Step 1: Start/continue execution (Todo or In Progress)
121121

122122
1. Find or create a single persistent scratchpad comment for the issue:
123-
- Search existing comments for a marker header: `## Symphony Workpad`.
123+
- Search existing comments for a marker header: `## Codex Workpad`.
124124
- Ignore resolved comments while searching; only active/unresolved comments are eligible to be reused as the live workpad.
125125
- If found, reuse that comment; do not create a new workpad comment.
126126
- If not found, create one workpad comment and use it for all updates.
@@ -184,3 +184,127 @@ Use this only when completion is blocked by missing required tools or missing au
184184
- Edit it liberally whenever reality changes (scope, risks, validation approach, discovered tasks).
185185
4. Implement against the hierarchical TODOs and keep the comment current:
186186
- Check off completed items.
187+
- Add newly discovered items in the appropriate section.
188+
- Keep parent/child structure intact as scope evolves.
189+
- Update the workpad immediately after each meaningful milestone (for example: reproduction complete, code change landed, validation run, review feedback addressed).
190+
- Never leave completed work unchecked in the plan.
191+
- For tickets that started as `Todo` with an attached PR, run the full PR feedback sweep protocol immediately after kickoff and before new feature work.
192+
5. Run validation/tests required for the scope.
193+
- Mandatory gate: execute all ticket-provided `Validation`/`Test Plan`/ `Testing` requirements when present; treat unmet items as incomplete work.
194+
- Prefer a targeted proof that directly demonstrates the behavior you changed.
195+
- You may make temporary local proof edits to validate assumptions (for example: tweak a local build input for `make`, or hardcode a UI account / response path) when this increases confidence.
196+
- Revert every temporary proof edit before commit/push.
197+
- Document these temporary proof steps and outcomes in the workpad `Validation`/`Notes` sections so reviewers can follow the evidence.
198+
- If app-touching, run `launch-app` validation and capture/upload media via `github-pr-media` before handoff.
199+
6. Re-check all acceptance criteria and close any gaps.
200+
7. Before every `git push` attempt, run the required validation for your scope and confirm it passes; if it fails, address issues and rerun until green, then commit and push changes.
201+
8. Attach PR URL to the issue (prefer attachment; use the workpad comment only if attachment is unavailable).
202+
- Ensure the GitHub PR has label `symphony` (add it if missing).
203+
9. Merge latest `origin/main` into branch, resolve conflicts, and rerun checks.
204+
10. Update the workpad comment with final checklist status and validation notes.
205+
- Mark completed plan/acceptance/validation checklist items as checked.
206+
- Add final handoff notes (commit + validation summary) in the same workpad comment.
207+
- Do not include PR URL in the workpad comment; keep PR linkage on the issue via attachment/link fields.
208+
- Add a short `### Confusions` section at the bottom when any part of task execution was unclear/confusing, with concise bullets.
209+
- Do not post any additional completion summary comment.
210+
11. Before moving to `Human Review`, poll PR feedback and checks:
211+
- Read the PR `Manual QA Plan` comment (when present) and use it to sharpen UI/runtime test coverage for the current change.
212+
- Run the full PR feedback sweep protocol.
213+
- Confirm PR checks are passing (green) after the latest changes.
214+
- Confirm every required ticket-provided validation/test-plan item is explicitly marked complete in the workpad.
215+
- Repeat this check-address-verify loop until no outstanding comments remain and checks are fully passing.
216+
- Re-open and refresh the workpad before state transition so `Plan`, `Acceptance Criteria`, and `Validation` exactly match completed work.
217+
12. Only then move issue to `Human Review`.
218+
- Exception: if blocked by missing required non-GitHub tools/auth per the blocked-access escape hatch, move to `Human Review` with the blocker brief and explicit unblock actions.
219+
13. For `Todo` tickets that already had a PR attached at kickoff:
220+
- Ensure all existing PR feedback was reviewed and resolved, including inline review comments (code changes or explicit, justified pushback response).
221+
- Ensure branch was pushed with any required updates.
222+
- Then move to `Human Review`.
223+
224+
## Step 3: Human Review and merge handling
225+
226+
1. When the issue is in `Human Review`, do not code or change ticket content.
227+
2. Poll for updates as needed, including GitHub PR review comments from humans and bots.
228+
3. If review feedback requires changes, move the issue to `Rework` and follow the rework flow.
229+
4. If approved, human moves the issue to `Merging`.
230+
5. When the issue is in `Merging`, open and follow `.codex/skills/land/SKILL.md`, then run the `land` skill in a loop until the PR is merged. Do not call `gh pr merge` directly.
231+
6. After merge is complete, move the issue to `Done`.
232+
233+
## Step 4: Rework handling
234+
235+
1. Treat `Rework` as a full approach reset, not incremental patching.
236+
2. Re-read the full issue body and all human comments; explicitly identify what will be done differently this attempt.
237+
3. Close the existing PR tied to the issue.
238+
4. Remove the existing `## Codex Workpad` comment from the issue.
239+
5. Create a fresh branch from `origin/main`.
240+
6. Start over from the normal kickoff flow:
241+
- If current issue state is `Todo`, move it to `In Progress`; otherwise keep the current state.
242+
- Create a new bootstrap `## Codex Workpad` comment.
243+
- Build a fresh plan/checklist and execute end-to-end.
244+
245+
## Completion bar before Human Review
246+
247+
- Step 1/2 checklist is fully complete and accurately reflected in the single workpad comment.
248+
- Acceptance criteria and required ticket-provided validation items are complete.
249+
- Validation/tests are green for the latest commit.
250+
- PR feedback sweep is complete and no actionable comments remain.
251+
- PR checks are green, branch is pushed, and PR is linked on the issue.
252+
- Required PR metadata is present (`symphony` label).
253+
- If app-touching, runtime validation/media requirements from `App runtime validation (required)` are complete.
254+
255+
## Guardrails
256+
257+
- If the branch PR is already closed/merged, do not reuse that branch or prior implementation state for continuation.
258+
- For closed/merged branch PRs, create a new branch from `origin/main` and restart from reproduction/planning as if starting fresh.
259+
- If issue state is `Backlog`, do not modify it; wait for human to move to `Todo`.
260+
- Do not edit the issue body/description for planning or progress tracking.
261+
- Use exactly one persistent workpad comment (`## Codex Workpad`) per issue.
262+
- If comment editing is unavailable in-session, use the update script. Only report blocked if both MCP editing and script-based editing are unavailable.
263+
- Temporary proof edits are allowed only for local verification and must be reverted before commit.
264+
- If out-of-scope improvements are found, create a separate Backlog issue rather
265+
than expanding current scope, and include a clear
266+
title/description/acceptance criteria, same-project assignment, a `related`
267+
link to the current issue, and `blockedBy` when the follow-up depends on the
268+
current issue.
269+
- Do not move to `Human Review` unless the `Completion bar before Human Review` is satisfied.
270+
- In `Human Review`, do not make changes; wait and poll.
271+
- If state is terminal (`Done`), do nothing and shut down.
272+
- Keep issue text concise, specific, and reviewer-oriented.
273+
- If blocked and no workpad exists yet, add one blocker comment describing blocker, impact, and next unblock action.
274+
275+
## Workpad template
276+
277+
Use this exact structure for the persistent workpad comment and keep it updated in place throughout execution:
278+
279+
````md
280+
## Codex Workpad
281+
282+
```text
283+
<hostname>:<abs-path>@<short-sha>
284+
```
285+
286+
### Plan
287+
288+
- [ ] 1\. Parent task
289+
- [ ] 1.1 Child task
290+
- [ ] 1.2 Child task
291+
- [ ] 2\. Parent task
292+
293+
### Acceptance Criteria
294+
295+
- [ ] Criterion 1
296+
- [ ] Criterion 2
297+
298+
### Validation
299+
300+
- [ ] targeted tests: `<command>`
301+
302+
### Notes
303+
304+
- <short progress note with timestamp>
305+
306+
### Confusions
307+
308+
- <only include when something was confusing during execution>
309+
````
310+

bunfig.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[test]
2+
coverage = true
3+
coverageReporter = ["text", "lcov"]
4+
coverageDir = "./coverage"

dashboard/src/hooks/useElapsed.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { useEffect, useState } from "react";
33
export function useElapsed(serverElapsed: number, allDone: boolean) {
44
const [offset, setOffset] = useState(0);
55

6+
// biome-ignore lint/correctness/useExhaustiveDependencies: serverElapsed reset triggers offset zeroing so we don't double-count
67
useEffect(() => {
78
if (allDone) return;
89
const start = performance.now();

data/autogpt-endpoint.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ endpoints:
3636
{
3737
"message": {{ last_message.content | tojson }},
3838
"is_user_message": true{% if copilot_mode is defined and copilot_mode %},
39-
"mode": {{ copilot_mode | tojson }}{% endif %}
39+
"mode": {{ copilot_mode | tojson }}{% endif %}{% if file_ids is defined and file_ids %},
40+
"file_ids": {{ file_ids | tojson }}{% endif %}
4041
}
4142
4243
session:

0 commit comments

Comments
 (0)