feat(ooda): Stages 1–5 — OODA Loop Plugin idea, research, requirements, design, spec#503
feat(ooda): Stages 1–5 — OODA Loop Plugin idea, research, requirements, design, spec#503Luis85 wants to merge 38 commits into
Conversation
Initialises specs/ooda-loop-plugin/ from GitHub issue #502. 10 research questions captured; primary use-case scoped to daily project brief. Advances to research stage. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
5 parallel agents covered: OODA theory, competitive landscape, Orient memory, Act gate trust models, plugin architecture. All 10 research questions answered. Advances to requirements stage. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
…ormat Added: versioned roadmap (v0–v4), Decide phase ranking design, brief output format spec, Learn phase/feedback loop, Orient→Observe feedback mechanism, first-run bootstrapping flow, success metrics, RISK-OODA-010 (v0 gate), user needs mapped to features, prompt injection deepened. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
27 EARS functional requirements across 8 areas (LOOP, OBS, ORI, DEC, BRIEF, LEARN, SETUP, DEG). 7 NFRs, success metrics with counter-metric, release criteria. Status: proposed — 4 open clarifications (OQ-OODA-001 through OQ-OODA-004) before advancing to design. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
All four open clarifications resolved (OQ-OODA-001 through OQ-OODA-004): - OQ-OODA-001: ⚠ Anomalies section added as optional fifth brief section (REQ-OODA-016 updated from 4 to 5 sections; section omitted when empty). - OQ-OODA-002: Tier 1 Act ships in v1 — adds ACT requirements area (REQ-OODA-028–032: selection prompt, auto-execute + 60s undo, settings.json allow/deny rules, workflow-trigger Tier 2 upgrade, empty-list guard). NG1 and Out of scope updated; Tier 2+ deferred to v2. - OQ-OODA-003: Free text feedback confirmed; no change to REQ-OODA-020. - OQ-OODA-004: v0 prototype gate waived; RISK-OODA-010 accepted. PRD-OODA-001 status: accepted. 32 functional requirements across 9 areas. Release criteria updated to cover Tier 1 Act end-to-end tests. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
Empty design.md created from template, ready for ux-designer, ui-designer, and architect passes. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
Four primary user flows mapped (first-run wizard, normal daily brief, Tier 1 action dispatch, majority-source failure path). Information architecture, empty/loading/error states, and accessibility considerations complete. Requirements coverage table maps all 32 EARS requirements to their UX treatment. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
16 output states mapped; 8 reusable output patterns defined (section headers, action items, anomaly blocks, footer, progress lines, Tier 1 menu, undo prompt, feedback prompt). 12 text/markdown tokens. Full microcopy for all 16 interactive prompts and system messages, each anchored to its REQ ID. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
ADR-0046: Package OODA Loop Plugin as standalone plugin group (under ADR-0036, not a new lifecycle track per ADR-0026 constraint). ADR-0047: Adopt two-file hybrid Orient memory (state.md + events.jsonl) over stateless-per-run and vector-store alternatives. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
System overview, 8-component table, 7-artifact data model (ooda-sources.yaml, state.md, events.jsonl, scratch files, briefs), full sequence diagram for all 7 phases, API contract sketches (YAML schema, settings.json fragment, GitHub MCP tool-tier mapping). 7 key decisions, 13 risks (10 carried + RISK-OODA-011/012/013), performance/security/observability analysis. Requirements coverage table maps all 32 REQs. All quality gate items green. ADR-0046 (plugin packaging) and ADR-0047 (Orient memory) referenced. DESIGN-OODA-001 status: accepted. workflow-state.md updated with architect hand-off notes for spec.md author. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
11 SPECDOC-OODA interface items covering all 32 REQs + 7 NFRs: entry point (15-step sequence, 5 error codes), first-run wizard (HTTPS/SSH URL parsing, placeholder fallback), Observe (parallel dispatch, 30s timeout, on_failure semantics), Orient (belief decay −0.2/7d, Pinned Constraints invariant), Decide (tier1_operation/target/params schema, ranking order), brief rendering (filename collision algorithm), Tier 1 Act (serial exec, undo state machine, GitHub MCP tool→reversal mapping), feedback+JSONL (atomic .tmp rename), summariser (last-14 constraint, priority adjustment), ooda-sources.yaml validation (field-level rules + error messages), settings.json fragment (allow/deny evaluation order, bypassPermissions block). 4 state machines, 3 data schemas, 21 edge cases, 57 test scenarios. All quality gate items green. workflow-state.md updated. https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs
|
@codex review Generated by Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 00c7f56b92
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
- workflow-state.md: advance current_stage from specification to tasks spec.md is complete; check-spec-state requires the current stage's artifact to be pending or in-progress when status is active. tasks.md is pending, which satisfies that invariant. - _typos.toml: allowlist British spellings used throughout the OODA spec files (summariser/Summariser, summarise, summarised, summarisation, behaviour, initialise, recognise). These appear in spec.md, design.md, research.md, and ADR-0047. https://claude.ai/code/session_011TPNgd7jBv3ySSyvaTifA1
|
@codex review Generated by Claude Code |
|
Codex Review: Didn't find any major issues. What shall we delve into next? ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0e3fe1a049
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…os and verify issues
- design.md: fix 'inferrable' → 'inferable' (spell check CI)
- requirements.md: add RESEARCH-OODA-001 Q4 to REQ-OODA-032 Satisfies field
(OQ-OODA-002 alone has no recognised traceability prefix; check:traceability
requires at least one canonical ID in every Satisfies field)
- spec.md: add REQ-* coverage to 10 test scenario table rows that only
referenced EC-OODA-* or SPECDOC-OODA-* IDs; check:traceability requires
every TEST-* row to mention at least one REQ-* or NFR-*:
TEST-OODA-012 → REQ-OODA-027
TEST-OODA-013 → REQ-OODA-025
TEST-OODA-042 → REQ-OODA-012
TEST-OODA-043 → REQ-OODA-012
TEST-OODA-044 → REQ-OODA-003
TEST-OODA-045 → REQ-OODA-004
TEST-OODA-046 → REQ-OODA-014
TEST-OODA-047 → REQ-OODA-029
TEST-OODA-049 → REQ-OODA-004
TEST-OODA-050 → REQ-OODA-004
https://claude.ai/code/session_011TPNgd7jBv3ySSyvaTifA1
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7c040d5a2e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…os and verify issues
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c09dc027ed
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…os and verify issues
|
@codex review Generated by Claude Code |
|
@codex review Generated by Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aa563ccbc7
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 92c4219d01
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…/018 Orient relies on memory/state.md for belief decay and pinned constraints (REQ-OODA-008/009/011/012). Update SPECDOC-OODA-017 to list it as persistent cross-run state, add it to the workspace layout in SPECDOC-OODA-018, and add state.md read/write steps to Orient phase (SPECDOC-OODA-005). Resolves reviewer thread on PR #503.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0e78ab8a91
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Generated by Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9828941694
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a5de53cadf
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
- Restrict satisfies list to defined requirement IDs (REQ-OODA-001..032) - Fix entry point path to packaged plugin location - Align Observe scratch filename with REQ-OODA-008 - Add raw_text field to observe_results schema - Normalize add_reviewer param contract (no @ prefix) - Add action priority constraint to Decide agent rules - Add pre-execution check column to Tier 1 operation table - Clarify add_reviewer undo availability - Add concurrent-write guard to JSONL write procedure - Update brief section heading to match PRD contract - Add feedback gate note to run lifecycle https://claude.ai/code/session_011TPNgd7jBv3ySSyvaTifA1
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cbe372aec8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
- Restrict satisfies list to defined requirement IDs (REQ-OODA-001..032) - Fix entry point path to packaged plugin location - Align Observe scratch filename with REQ-OODA-008 - Add raw_text field to observe_results schema - Normalize add_reviewer param contract (no @ prefix) - Add action priority constraint to Decide agent rules - Add pre-execution check column to Tier 1 operation table - Clarify add_reviewer undo availability - Add concurrent-write guard to JSONL write procedure - Update brief section heading to match PRD contract - Add feedback gate note to run lifecycle https://claude.ai/code/session_011TPNgd7jBv3ySSyvaTifA1
|
@codex review Generated by Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9b900d1bd1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…layout, fix hard-timeout error code
…OODA-033 The performance budget table referenced EC-OODA-002 (all-sources-failed) for the hard-limit exceeded case. The correct code is EC-OODA-012 (Observe hard-timeout). https://claude.ai/code/session_011TPNgd7jBv3ySSyvaTifA1
|
@codex review Generated by Claude Code |
|
Codex Review: Didn't find any major issues. You're on a roll. ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review Generated by Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 074fb0a5bc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 074fb0a5bc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…ign thread - Define EC-OODA-012 error catalog entry in SPECDOC-OODA-033 with trigger, message, and recovery for phase hard-timeout - Update review checklist range from EC-OODA-011 to EC-OODA-012 - Correct REQ-OODA-033 (undefined) to REQ-OODA-003 in SPECDOC-OODA-013 satisfies mapping and in TEST-OODA-030/031 traceability rows - Improve design.md plugin layout README comment to be more descriptive
|
@codex review Generated by Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d6ac0afd3b
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| 2. Read `memory/events.jsonl` (if exists) → count lines; parse last 5 for display fields. | ||
| 3. Display formatted output. | ||
|
|
||
| **Satisfies:** REQ-OODA-034 |
There was a problem hiding this comment.
Remove undefined REQ IDs from spec traceability
The spec maps behavior to requirement IDs that do not exist in the accepted PRD (which defines only REQ-OODA-001 through REQ-OODA-032 in requirements.md), e.g. this section cites REQ-OODA-034 and other parts cite REQ-OODA-045/048/049/050/051/053. When tasks and tests are generated from this spec, those references become unresolvable, breaking requirement-to-test traceability and allowing unapproved scope to slip into implementation.
Useful? React with 👍 / 👎.
|
|
||
| **Explicitly out of scope for v1 (deferred):** | ||
|
|
||
| - **Tier 2 operations** — close_issue, merge_pr, assign_milestone, update_issue_body. Require per-action user confirmation; deferred to v2. |
There was a problem hiding this comment.
Classify merge_pr consistently as Tier 3
merge_pr is listed as a Tier 2 operation here, but the same spec later defines Tier 3 as including merge PR (hard-denied via settings.json), and the PRD's Tier rules align with that Tier 3 treatment. This contradiction creates an ambiguous security model for Act gating and can lead to incorrect implementation of permission/confirmation flows in later stages.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ea6ee71d21
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| 1. For each entry in `sources[]`: | ||
| a. Dispatch the appropriate MCP read tool based on `type`: | ||
| - `type: issues` → `mcp__github__list_issues` with params derived from `filters`. | ||
| - `type: pull_requests` → `mcp__github__list_pull_requests` with params derived from `filters`. |
There was a problem hiding this comment.
Filter Observe dispatch to enabled sources only
Update the Observe dispatch contract so it skips sources that are configured as disabled. This step currently iterates every sources[] entry and dispatches MCP calls unconditionally, which makes enabled: false behavior from REQ-OODA-004/REQ-OODA-005 unimplementable and causes disabled sources to be queried in runs where users intended them to stay off.
Useful? React with 👍 / 👎.
| "tier1_operation": "add_label" | "remove_label" | "post_comment" | "add_reviewer" | "create_draft_issue", | ||
| "params": {}, | ||
| "rationale": "string", | ||
| "confidence": "high" | "medium" | ||
| } |
There was a problem hiding this comment.
Add required signal-basis and effort fields to Decide output
Extend the decide_plan.actions schema to include the fields required by REQ-OODA-014 (action description, signal basis, and effort as S|M|L). As written, the action object exposes only operation metadata plus rationale/confidence, so implementers following this spec cannot satisfy the accepted Decide output contract or its acceptance tests.
Useful? React with 👍 / 👎.
Summary
IDEA-OODA-001— acceptedRESEARCH-OODA-001— complete (5 parallel agents, 2 passes)PRD-OODA-001— accepted (32 EARS requirements, 4 OQs resolved)DESIGN-OODA-001— accepted (UX flows, UI patterns, full architecture)SPEC-OODA-001— accepted (1,501 lines, 57 test scenarios)Spec lineage
specs/ooda-loop-plugin/idea.mdspecs/ooda-loop-plugin/research.mdspecs/ooda-loop-plugin/requirements.mdspecs/ooda-loop-plugin/design.mdspecs/ooda-loop-plugin/spec.mdSpecification highlights (SPEC-OODA-001)
11 SPECDOC-OODA interface items covering all 32 REQs + 7 NFRs:
/ooda:briefentry point — 15-step startup sequence, 5 error codes.tmprename, non-blocking failure pathooda-sources.yamlvalidation — field-level rules + exact error messagessettings.jsonfragment — allow/deny evaluation order, bypassPermissions blocked4 state machines (run lifecycle, summariser trigger, Act undo window, first-run wizard)
3 data schemas with field-level constraints (
ooda-sources.yaml,state.md,events.jsonl)21 edge cases (concurrent runs, malformed JSONL, zero enabled sources, 100% source failure, undo reversal failure…)
57 test scenarios traced to REQ IDs (TEST-OODA-001 through TEST-OODA-057)
All 7 quality gate items green ✓
ADRs filed
Next step
/spec:tasks— decompose spec into ~½-day TDD-ordered tasks. Optional first:/spec:analyzeto cross-check spec ↔ requirements ↔ design consistency.Related
https://claude.ai/code/session_01Exinx6yb8wLnKxFth88xNs