Skip to content

Refactor workflow phases#9

Merged
mrsthl merged 39 commits into
mainfrom
refactor-workflow-phases
May 17, 2026
Merged

Refactor workflow phases#9
mrsthl merged 39 commits into
mainfrom
refactor-workflow-phases

Conversation

@mrsthl
Copy link
Copy Markdown
Owner

@mrsthl mrsthl commented May 1, 2026

Summary by CodeRabbit

  • New Features

    • Renamed CLI to "foifi" and introduced v2 dev-workflow with /5:configure, /5:plan, /5:implement, /5:review, /5:address-review-findings
    • Unified planning into a single plan artifact with integrated codebase scan, step orchestration, parallel component execution, and inline verification
  • Documentation

    • Overhauled workflow guide, added agent and orchestration specs, updated templates and command docs
  • Chores

    • Breaking migration to v2.0.0: artifact formats and legacy phase commands removed/renamed; follow migration notice before upgrading

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

📝 Walkthrough

Walkthrough

Consolidates a five-phase workflow into a three-phase dev-workflow (plan → implement → review), rebrands package to foifi (v2.0.0-beta-2), introduces step-orchestrator / step-executor / verification agents and a step-driven state.json, and updates installer, sync, hooks, templates, commands, and docs across many files.

Changes

Cohort / File(s) Summary
Package & Installers
package.json, bin/install.js, bin/sync-agents.js, src/hooks/check-updates.js, src/hooks/statusline.js
Rebrand package/CLI to foifi, bump version to 2.0.0-beta-2, add semver-aware parsing and prerelease ordering, update installer/sync to install new agent files and retire legacy artifacts, and change runtime detection/upgrade messaging to foifi.
Top-level Docs & Release
README.md, RELEASE_NOTES.md, CLAUDE.md, AGENTS.md, docs/workflow-guide.md, docs/findings.md
Replace five-phase documentation with v2 “dev-workflow” guidance, add AGENTS.md describing agents/installer rules, rewrite README and workflow guide to new command set and artifacts, add v2 release note and rebrand references.
Commands — removed (legacy)
src/commands/5/plan-feature.md, src/commands/5/plan-implementation.md, src/commands/5/implement-feature.md, src/commands/5/verify-implementation.md, src/commands/5/review-code.md, src/commands/5/quick-implement.md
Delete legacy five-phase command specifications and their orchestration semantics and templates.
Commands — added/updated (v2)
src/commands/5/plan.md, src/commands/5/implement.md, src/commands/5/review.md, src/commands/5/configure.md, src/commands/5/discuss-feature.md, src/commands/5/address-review-findings.md, src/commands/5/eject.md, src/commands/5/reconfigure.md, src/commands/5/synchronize-agents.md, src/commands/5/update.md
Add unified /5:plan, /5:implement, /5:review commands and update many existing command docs to reference plan.md/new flow, change frontmatter/context and rebrand messaging and reinstall/sync instructions.
Agent specs
src/agents/component-executor.md (removed), src/agents/step-executor-agent.md, src/agents/step-orchestrator-agent.md, src/agents/verification-agent.md
Remove legacy component-executor; add step-orchestrator to derive .5/features/{}/state.json, step-executor to execute components and emit ---RESULT---, and verification-agent to run checks and record verification in state.json.
Templates & State
src/templates/workflow/FEATURE-SPEC.md (removed), src/templates/workflow/VERIFICATION-REPORT.md (removed), src/templates/workflow/PLAN.md, src/templates/workflow/FIX-PLAN.md, src/templates/workflow/STATE.json
Remove legacy feature spec and verification report templates; introduce consolidated PLAN.md template; update FIX-PLAN refs to plan.md; evolve STATE.json to step-driven model with steps, components, verify fields, and baseline/verification placeholders.
Hooks & Enforcement
src/hooks/plan-guard.js
Normalize planning phase detection, enforce plan.md as allowed artifact (no source writes/state.json during plan), and update redirect messages to use /5:implement.
Skills & Templates Usage
src/skills/.../SKILL.md, src/templates/...
Switch configure skill inputs from feature.md to plan.md, expand allowed tools where noted, and align skill docs with /5:implement CONFIGURE.
Tests
test/test-update-system.sh, test/test-version-compare.sh
Expand upgrade/migration tests for v1→v2 artifacts and agent install/uninstall; add semver comparison regression test harness for new compareVersions implementation.
Removed agent/command docs (misc)
src/agents/component-executor.md, various deleted command/quick files
Remove multiple legacy docs and command specs tied to the old five-phase orchestration.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI as /5:implement
    participant Orchestrator as step-orchestrator-agent
    participant Executor as step-executor-agent
    participant Verifier as verification-agent
    participant StateFile as .5/features/{feature}/state.json

    User->>CLI: /5:implement {feature} (uses plan.md + codebase-scan.md)
    CLI->>StateFile: Load state.json (if present)
    alt no state.json or restart
        CLI->>Orchestrator: Spawn orchestrator (plan.md + scan)
        Orchestrator->>StateFile: Write derived state.json (steps/components)
    end
    CLI->>CLI: Run baseline build/test, store baseline in state.json
    loop For each step
        CLI->>CLI: Enforce deps & file prechecks
        CLI->>Executor: Spawn executor per component (parallel/sequential)
        Executor->>Executor: Read patterns, modify/create files, run component verify
        Executor->>CLI: Return ---RESULT--- (status, files, verify)
        CLI->>StateFile: Update component status & retries (escalate model if needed)
    end
    CLI->>Verifier: Spawn verification-agent
    Verifier->>Verifier: Run completeness/build/test/quality checks
    Verifier->>CLI: Return ---VERIFICATION--- (status, results)
    CLI->>StateFile: Update verification fields & set status (completed/failed)
    CLI->>User: Report counts, verification status, path to state.json
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related issues

  • Issue mrsthl/5#8: Directly related — implements the same 5→3-phase refactor including agent additions, plan/state restructuring, and deletions/renames described in this PR.

Possibly related PRs

  • PR mrsthl/5#5: Overlaps planning and template edits (plan-feature → plan.md, PLAN.md changes) and touches similar command/template boundaries.
  • PR mrsthl/5#4: Overlaps feature-planning workflow and FEATURE-SPEC template modifications/deletions.
  • PR mrsthl/5#3: Overlaps installer and Codex/runtime install detection logic changes (bin/install.js, sync-agents, tests).

Poem

🐰 From five hops to three, the workflow unbinds,
The orchestrator plans while the executor finds,
Verification hums, state.json gleams,
foifi hops onward, implementing dreams. ✨

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 63.16% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Refactor workflow phases' is vague and does not clearly convey the primary changes in this large PR, which involve a complete workflow restructuring from a 5-phase model to a 3-phase 'dev-workflow', semver comparison fixes, and rename action handling. Consider a more specific title such as 'Migrate from 5-phase to 3-phase dev-workflow with semver and rename action fixes' to better reflect the substantial scope and key fixes.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor-workflow-phases

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ec83f06f1b

ℹ️ 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".

Comment thread bin/sync-agents.js Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (6)
src/commands/5/eject.md (1)

1-6: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Restore the required context frontmatter field.

This command file no longer satisfies the repo rule that workflow commands must include context in frontmatter, which can break command metadata loading. As per coding guidelines, commands are Markdown files with YAML frontmatter that must include: name, description, allowed-tools, context, and user-invocable properties.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/commands/5/eject.md` around lines 1 - 6, The frontmatter for the command
in src/commands/5/eject.md is missing the required context field; update the
YAML frontmatter block at the top of the file (the existing keys: name,
description, allowed-tools, user-invocable) to include a context entry (e.g.,
context: repo or another appropriate context value per project conventions) so
the command metadata loader can parse it correctly; ensure the frontmatter still
contains name, description, allowed-tools, context, and user-invocable in the
same block.
src/commands/5/address-review-findings.md (1)

1-7: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Restore the required context frontmatter field.

This command file no longer satisfies the repo rule that workflow commands must include context in frontmatter, which can break command metadata loading. As per coding guidelines, commands are Markdown files with YAML frontmatter that must include: name, description, allowed-tools, context, and user-invocable properties.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/commands/5/address-review-findings.md` around lines 1 - 7, The
frontmatter for the command "5:address-review-findings" is missing the required
context field; edit the Markdown frontmatter at the top of that file to add a
context property (e.g., context: repo or another valid context used across
commands) so the frontmatter includes name, description, allowed-tools, context,
and user-invocable; make sure the added context key follows the same
formatting/style as the existing YAML frontmatter entries to restore proper
metadata loading.
test/test-update-system.sh (1)

236-247: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Check the full Codex uninstall surface.

This assertion only verifies .codex/skills/5-plan/SKILL.md is removed. If 5-implement, 5-review, or 5-verify remain on disk, the test still passes.

Suggested fix
-if [ -f ".codex/skills/5-plan/SKILL.md" ]; then
-  echo "✗ Workflow skills not removed"
-  exit 1
-else
-  echo "✓ Workflow skills removed"
-fi
+for skill in 5-plan 5-implement 5-review 5-verify; do
+  if [ -e ".codex/skills/$skill" ]; then
+    echo "✗ Workflow skill still present: $skill"
+    exit 1
+  fi
+done
+echo "✓ Workflow skills removed"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/test-update-system.sh` around lines 236 - 247, The test only checks for
.codex/skills/5-plan/SKILL.md and .codex/instructions.md; update the assertion
block in test/test-update-system.sh to verify the full Codex uninstall surface
by iterating over the skill folders (5-plan, 5-implement, 5-review, 5-verify)
and failing if any .codex/skills/5-*/SKILL.md exists, and keep the existing
check for .codex/instructions.md (or check it once alongside the loop) so any
remaining skill files or instructions.md cause the test to fail; locate the
existing if/else checks for .codex/skills/5-plan/SKILL.md and
.codex/instructions.md and replace them with a loop/combined checks.
src/skills/configure-skills/SKILL.md (1)

50-55: ⚠️ Potential issue | 🟠 Major

Add create-skill and scaffold-skill to allowed-tools or remove the documented fast path.

The skill body (line 52) references using create-skill and scaffold-skill from the skill-creator plugin when available, but neither tool appears in the frontmatter's allowed-tools list (line 4: Read, Write, Bash, Glob, Grep). Either add these tools to the whitelist or remove the reference to this conditional fast path.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/skills/configure-skills/SKILL.md` around lines 50 - 55, The frontmatter's
allowed-tools list in SKILL.md doesn't include the skill-creator tools
referenced in the body; either add "create-skill" and "scaffold-skill" to the
frontmatter allowed-tools array or remove the conditional fast-path paragraph
that mentions using the skill-creator plugin; update the frontmatter entry named
allowed-tools (currently containing Read, Write, Bash, Glob, Grep) to include
create-skill and scaffold-skill, or delete/replace the lines that reference
tools.skillCreator.available and the create-skill/scaffold-skill examples so the
doc and whitelist stay consistent.
src/commands/5/configure.md (1)

260-265: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Drop the obsolete "implementation plans" wording.

.5/features/ no longer contains a separate implementation-plan artifact in v2. Please update this prompt to describe the actual generated contents so the .gitignore guidance stays accurate.

Suggested fix
- - "The `.5/features/` folder will contain unified plans, implementation plans, and state files. Would you like to add it to `.gitignore`?"
+ - "The `.5/features/` folder will contain unified plans, state files, verification reports, and review findings. Would you like to add it to `.gitignore`?"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/commands/5/configure.md` around lines 260 - 265, Update the prompt block
titled "2m. Git-ignore `.5/features/` folder" to remove the obsolete phrase
"implementation plans" and instead describe the actual generated contents (e.g.,
unified plans and state files) so the guidance is accurate; find the prompt text
containing "The `.5/features/` folder will contain unified plans, implementation
plans, and state files. Would you like to add it to `.gitignore`?" and change it
to mention only the current artifacts (for example "unified plans and state
files") and keep the two options and recommendation wording unchanged.
src/commands/5/discuss-feature.md (1)

78-88: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Align the extracted state with the unified plan.

This still extracts the old feature-spec sections, so the discussion flow will miss the sections the new plan.md actually uses.

Suggested fix
- Extract current state:
- - Ticket ID
- - Summary
- - Requirements (functional and non-functional)
- - Constraints
- - Affected domains
- - Entity definitions
- - Business rules
- - Acceptance criteria
- - Alternatives considered
- - Decisions (with [DECIDED]/[FLEXIBLE]/[DEFERRED] labels)
+ Extract current state:
+ - Ticket ID
+ - Overview
+ - What Changes
+ - Existing Patterns to Follow
+ - Constraints
+ - Scope
+ - Acceptance Criteria
+ - Decisions ([DECIDED]/[FLEXIBLE]/[DEFERRED])
+ - Module Impact
+ - Component Checklist
+ - Technical Notes
+ - Alternatives Considered
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/commands/5/discuss-feature.md` around lines 78 - 88, The "Extract current
state" section currently lists legacy feature-spec headings; update it to match
the unified plan used in plan.md by replacing those items with the plan's
canonical sections (for example: Goals, Scope, Stakeholders, Requirements
(functional/non‑functional), Constraints, Success criteria/Acceptance criteria,
Deliverables, Risks & Mitigations, Open questions, Alternatives considered, and
Decisions with [DECIDED]/[FLEXIBLE]/[DEFERRED] labels) and ensure the header
"Extract current state" and the Decisions labeling remain present so downstream
flow expects the new plan structure.
🧹 Nitpick comments (1)
AGENTS.md (1)

62-67: ⚡ Quick win

Add usage examples to the AGENTS guide.

This draft covers agent capabilities, inputs, and outputs, but the repo guideline also requires usage examples. A short invocation example for each agent would make the new guide complete and easier to apply.

As per coding guidelines: Use AGENTS.md to document all available agents, their capabilities, inputs, outputs, and usage examples.

Suggested addition
 ## Agents
 - `step-orchestrator-agent.md` reads `plan.md` and `codebase-scan.md`, then writes enriched `state.json`.
 - `step-executor-agent.md` implements assigned components and reports a strict `---RESULT---` block.
 - `verification-agent.md` runs file/build/test/acceptance/quality checks and writes `verification.md`.
+
+## Usage examples
+- `step-orchestrator-agent.md`: read `plan.md` and `codebase-scan.md`, then write `state.json`
+- `step-executor-agent.md`: implement the assigned step and end with `---RESULT---`
+- `verification-agent.md`: run the selected checks and write `verification.md`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 62 - 67, AGENTS.md currently lists capabilities/IO
for each agent but lacks usage examples; add a short invocation example for each
agent entry (step-orchestrator-agent.md, step-executor-agent.md,
verification-agent.md) showing how to run or call the agent (e.g., CLI command
or JSON payload and expected response), include one concrete sample input and
the corresponding output snippet (e.g., a minimal plan -> enriched state.json
for step-orchestrator-agent, a component assignment -> ---RESULT--- block for
step-executor-agent, and a test run -> verification.md excerpt for
verification-agent) and keep each example to 1–2 lines so the guide remains
concise.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@bin/sync-agents.js`:
- Around line 34-38: The exclusion set WORKFLOW_MANAGED_AGENTS currently misses
the legacy filename "component-executor.md", causing getClaudeCustomAgents() to
treat that file as user-authored and mirror it into .codex/instructions.md;
update WORKFLOW_MANAGED_AGENTS to include "component-executor.md" (or
alternatively move the managed-agent list into a single source such as the
installer manifest and have getClaudeCustomAgents() read from that centralized
inventory) so legacy workflow-managed agents remain excluded from syncing.

In `@src/agents/step-orchestrator-agent.md`:
- Around line 28-69: Update the sample JSON so the totalSteps field is not
hard-coded to 0 but reflects the actual number of entries in the steps array
(i.e., totalSteps === steps.length); modify the example in
src/agents/step-orchestrator-agent.md to compute/represent totalSteps from the
steps array rather than a fixed value, ensuring the "totalSteps" and "steps"
fields stay consistent in the sample state.json.

In `@src/agents/verification-agent.md`:
- Around line 22-27: The "Files" check only considers create/modify/delete and
misses the supported "rename" action; update the verification logic and
documentation for the Files rule so that when an action is "rename" it verifies
the old path is removed and the new path is created (i.e., check that the source
file no longer exists and the destination file exists), and update the
Acceptance criteria/inspection guidance to require evidence for both the removal
of the old path and creation of the new path; refer to the "Files" rule text
(line starting "Files: every planned create/modify target exists unless action
is `delete`.") and ensure any code that iterates plan actions treats "rename"
explicitly.

In `@src/commands/5/discuss-feature.md`:
- Line 3: Update remaining v1 terminology in src/commands/5/discuss-feature.md
by replacing the old `/plan` and `spec` terms with their namespaced equivalents:
change every occurrence of `/plan` to `5:plan` and every standalone use of
`spec` to `5:spec` (including the description field, the fallback prompt, the
final choice text, and the occurrences noted around lines 66-70 and 141); ensure
you edit the description, fallback prompt, and final choice blocks in
discuss-feature.md so all command names are consistently prefixed with `5:`.

In `@src/commands/5/implement.md`:
- Line 28: Update the recovery text that currently reads "If `plan.md` is
missing, stop and tell the user to run `/5:plan {feature-name}` first." to
instruct users to run the plan command without a folder name since the command
derives the folder from the description/ticket; replace the sentence in
src/commands/5/implement.md (the missing-plan message) with wording like "If
plan.md is missing, stop and tell the user to run `/5:plan` first (the command
derives the feature folder from the description/ticket)." Ensure the updated
message makes clear no explicit {feature-name} is required.
- Around line 65-67: The baseline step currently reads commands from the
non-guaranteed state.json.verification.commands; update the text in implement.md
to either (a) use only guaranteed sources (e.g., the .5/config.json commands)
and explicitly state the fallback order, or (b) require and reference a new
guaranteed field in the orchestrator state contract (add verification.commands
to src/agents/step-orchestrator-agent.md). Specifically, change the wording
around "Run build/test commands from state.json.verification.commands or
.5/config.json" to define a clear, contract-safe precedence (use .5/config.json
as primary or fall back to it if verification.commands is absent) and mention
skipping commands set to "none" and recording results in state.json.baseline as
before.

In `@src/commands/5/plan.md`:
- Around line 63-69: Enforce strict ticket ID validation and safe argument
passing: when reading ticket.pattern from .5/config.json and matching the branch
name, validate the extracted ID against a tight regex for expected formats
(e.g., PROJECT-123) and reject or re-prompt on mismatch; when calling the Jira
fetch path (--jira -> mcp__claude_ai_Atlassian_Rovo__getJiraIssue) pass the
validated ID as a typed parameter rather than interpolating into a shell string,
and when running the GitHub path (--github -> gh issue view {id} --json ...)
invoke the CLI using an argv array or a library API and wrap the ID in explicit
quotes or escaping to prevent shell interpretation; apply the same
validation/quoting to user-entered IDs (step 4) and on fetch failure return a
clear error and continue without executing any unvalidated input.

In `@src/commands/5/review.md`:
- Around line 75-79: The current review output marks question-type findings as
fixable ([FIX]) which makes them appear auto-applicable to
/5:address-review-findings; change the emission logic so that question findings
use the [MANUAL] action marker (leave fixable issues as [FIX] and manual-only
items as [MANUAL]), and ensure the question text is preserved but NOT wrapped as
a [FIX] instruction; update the generator that builds the action marker (the
code/path that decides between "[FIX]" and "[MANUAL]" in the review emitter) to
map question-type findings -> "[MANUAL]" and keep the rest unchanged.

In `@src/commands/5/update.md`:
- Around line 1-7: The frontmatter for the command "5:update" is missing the
required context field; update the YAML frontmatter at the top of the Markdown
(the block containing name: 5:update, description, allowed-tools,
user-invocable, model) to include a context entry (for example context: workflow
or the appropriate context string used by other commands) so the command
metadata loader sees name, description, allowed-tools, context, and
user-invocable present.

In `@test/test-update-system.sh`:
- Around line 87-104: The cleanup test in test/test-update-system.sh only checks
a subset of v1 files; update the for-loop that iterates over old_file to include
the missing legacy filenames quick-implement.md, review-code.md, and
verify-implementation.md (alongside the existing
".claude/commands/5/plan-feature.md",
".claude/commands/5/plan-implementation.md",
".claude/commands/5/implement-feature.md",
".claude/agents/component-executor.md",
".claude/templates/workflow/FEATURE-SPEC.md") so the existence check (the if [
-e "$old_file" ] ... exit 1) fails if any of those legacy files remain.

---

Outside diff comments:
In `@src/commands/5/address-review-findings.md`:
- Around line 1-7: The frontmatter for the command "5:address-review-findings"
is missing the required context field; edit the Markdown frontmatter at the top
of that file to add a context property (e.g., context: repo or another valid
context used across commands) so the frontmatter includes name, description,
allowed-tools, context, and user-invocable; make sure the added context key
follows the same formatting/style as the existing YAML frontmatter entries to
restore proper metadata loading.

In `@src/commands/5/configure.md`:
- Around line 260-265: Update the prompt block titled "2m. Git-ignore
`.5/features/` folder" to remove the obsolete phrase "implementation plans" and
instead describe the actual generated contents (e.g., unified plans and state
files) so the guidance is accurate; find the prompt text containing "The
`.5/features/` folder will contain unified plans, implementation plans, and
state files. Would you like to add it to `.gitignore`?" and change it to mention
only the current artifacts (for example "unified plans and state files") and
keep the two options and recommendation wording unchanged.

In `@src/commands/5/discuss-feature.md`:
- Around line 78-88: The "Extract current state" section currently lists legacy
feature-spec headings; update it to match the unified plan used in plan.md by
replacing those items with the plan's canonical sections (for example: Goals,
Scope, Stakeholders, Requirements (functional/non‑functional), Constraints,
Success criteria/Acceptance criteria, Deliverables, Risks & Mitigations, Open
questions, Alternatives considered, and Decisions with
[DECIDED]/[FLEXIBLE]/[DEFERRED] labels) and ensure the header "Extract current
state" and the Decisions labeling remain present so downstream flow expects the
new plan structure.

In `@src/commands/5/eject.md`:
- Around line 1-6: The frontmatter for the command in src/commands/5/eject.md is
missing the required context field; update the YAML frontmatter block at the top
of the file (the existing keys: name, description, allowed-tools,
user-invocable) to include a context entry (e.g., context: repo or another
appropriate context value per project conventions) so the command metadata
loader can parse it correctly; ensure the frontmatter still contains name,
description, allowed-tools, context, and user-invocable in the same block.

In `@src/skills/configure-skills/SKILL.md`:
- Around line 50-55: The frontmatter's allowed-tools list in SKILL.md doesn't
include the skill-creator tools referenced in the body; either add
"create-skill" and "scaffold-skill" to the frontmatter allowed-tools array or
remove the conditional fast-path paragraph that mentions using the skill-creator
plugin; update the frontmatter entry named allowed-tools (currently containing
Read, Write, Bash, Glob, Grep) to include create-skill and scaffold-skill, or
delete/replace the lines that reference tools.skillCreator.available and the
create-skill/scaffold-skill examples so the doc and whitelist stay consistent.

In `@test/test-update-system.sh`:
- Around line 236-247: The test only checks for .codex/skills/5-plan/SKILL.md
and .codex/instructions.md; update the assertion block in
test/test-update-system.sh to verify the full Codex uninstall surface by
iterating over the skill folders (5-plan, 5-implement, 5-review, 5-verify) and
failing if any .codex/skills/5-*/SKILL.md exists, and keep the existing check
for .codex/instructions.md (or check it once alongside the loop) so any
remaining skill files or instructions.md cause the test to fail; locate the
existing if/else checks for .codex/skills/5-plan/SKILL.md and
.codex/instructions.md and replace them with a loop/combined checks.

---

Nitpick comments:
In `@AGENTS.md`:
- Around line 62-67: AGENTS.md currently lists capabilities/IO for each agent
but lacks usage examples; add a short invocation example for each agent entry
(step-orchestrator-agent.md, step-executor-agent.md, verification-agent.md)
showing how to run or call the agent (e.g., CLI command or JSON payload and
expected response), include one concrete sample input and the corresponding
output snippet (e.g., a minimal plan -> enriched state.json for
step-orchestrator-agent, a component assignment -> ---RESULT--- block for
step-executor-agent, and a test run -> verification.md excerpt for
verification-agent) and keep each example to 1–2 lines so the guide remains
concise.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fb461d47-39cd-4410-a77e-c2f5aa4f5b92

📥 Commits

Reviewing files that changed from the base of the PR and between 8e86aca and ec83f06.

📒 Files selected for processing (38)
  • AGENTS.md
  • CLAUDE.md
  • README.md
  • RELEASE_NOTES.md
  • bin/install.js
  • bin/sync-agents.js
  • docs/workflow-guide.md
  • package.json
  • src/agents/component-executor.md
  • src/agents/step-executor-agent.md
  • src/agents/step-orchestrator-agent.md
  • src/agents/verification-agent.md
  • src/commands/5/address-review-findings.md
  • src/commands/5/configure.md
  • src/commands/5/discuss-feature.md
  • src/commands/5/eject.md
  • src/commands/5/implement-feature.md
  • src/commands/5/implement.md
  • src/commands/5/plan-feature.md
  • src/commands/5/plan-implementation.md
  • src/commands/5/plan.md
  • src/commands/5/quick-implement.md
  • src/commands/5/reconfigure.md
  • src/commands/5/review-code.md
  • src/commands/5/review.md
  • src/commands/5/synchronize-agents.md
  • src/commands/5/update.md
  • src/commands/5/verify-implementation.md
  • src/commands/5/verify.md
  • src/hooks/plan-guard.js
  • src/skills/configure-docs-index/SKILL.md
  • src/skills/configure-skills/SKILL.md
  • src/templates/workflow/FEATURE-SPEC.md
  • src/templates/workflow/FIX-PLAN.md
  • src/templates/workflow/PLAN.md
  • src/templates/workflow/STATE.json
  • src/templates/workflow/VERIFICATION-REPORT.md
  • test/test-update-system.sh
💤 Files with no reviewable changes (10)
  • src/commands/5/synchronize-agents.md
  • src/agents/component-executor.md
  • src/templates/workflow/FEATURE-SPEC.md
  • src/commands/5/reconfigure.md
  • src/commands/5/plan-implementation.md
  • src/commands/5/verify-implementation.md
  • src/commands/5/plan-feature.md
  • src/commands/5/review-code.md
  • src/commands/5/implement-feature.md
  • src/commands/5/quick-implement.md

Comment thread bin/sync-agents.js
Comment thread src/agents/step-orchestrator-agent.md
Comment thread src/agents/verification-agent.md Outdated
Comment thread src/commands/5/discuss-feature.md Outdated
Comment thread src/commands/5/implement.md Outdated
Comment thread src/commands/5/implement.md Outdated
Comment thread src/commands/5/plan.md Outdated
Comment thread src/commands/5/review.md Outdated
Comment thread src/commands/5/update.md
Comment thread test/test-update-system.sh Outdated
@mrsthl
Copy link
Copy Markdown
Owner Author

mrsthl commented May 1, 2026

Decision summary for bundled/outside-diff PR comments:

  • src/commands/5/address-review-findings.md: fixed, restored context: inherit frontmatter.
  • src/commands/5/configure.md: fixed, updated .5/features/ gitignore prompt to current artifacts.
  • src/commands/5/discuss-feature.md: fixed, aligned extracted state with unified plan.md sections.
  • src/commands/5/eject.md: fixed, restored context: inherit frontmatter.
  • src/skills/configure-skills/SKILL.md: fixed, allowed-tools now includes create-skill and scaffold-skill referenced by the skill body.
  • test/test-update-system.sh: fixed, Codex uninstall now checks the core workflow skill folders, and Claude legacy cleanup now covers the missing legacy commands.
  • AGENTS.md: fixed, added concise usage examples for the three agents.

No code fix for the generated walkthrough/pre-merge summary itself. The title/docstring notes are PR metadata/reporting suggestions, not actionable code changes for this branch.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7506023dca

ℹ️ 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".

Comment thread package.json Outdated
Comment thread bin/install.js
Comment on lines +851 to +852
const legacyMarkerFile = path.join(targetPath, 'skills', '5-plan-feature', 'SKILL.md');
return fs.existsSync(markerFile) || fs.existsSync(legacyMarkerFile);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove legacy Codex skills when uninstalling legacy installs

Legacy Codex installs are now treated as valid (5-plan-feature marker), but uninstall still deletes only skills derived from the current command set (5-plan, 5-implement, etc.), so old directories like .codex/skills/5-plan-feature and .codex/skills/5-implement-feature are left behind while the command reports success. This creates a misleading partial uninstall specifically for users uninstalling from a v1-style Codex layout.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/commands/5/implement.md`:
- Around line 1-7: The frontmatter for the command named "5:implement" is
missing the required context field; add a context entry to the YAML frontmatter
(alongside name, description, allowed-tools, and user-invocable) with an
appropriate value (e.g., a short string like "implementation" or a specific
execution context) so the command file includes the required metadata; update
the frontmatter block at the top of the "5:implement" command markdown to
include context.

In `@src/commands/5/plan.md`:
- Around line 1-7: The frontmatter for the command named "5:plan" is missing the
required context key; update the YAML frontmatter at the top of the file (the
block containing name, description, allowed-tools, user-invocable) to include a
context entry (for example context: "feature-planning" or another appropriate
short identifier) so the metadata contract is satisfied; ensure the context key
is a simple string and placed alongside the existing keys in the frontmatter.

In `@test/test-update-system.sh`:
- Around line 190-201: The test currently only checks a subset of Codex skills
and agents; update test/test-update-system.sh to assert the full v2 skill set by
adding checks for ".codex/skills/5-review/SKILL.md" and
".codex/skills/5-implement/SKILL.md" (ensure both are required for fresh
installs and upgrades) alongside the existing ".codex/skills/5-plan/SKILL.md"
check, and mirror these additional assertions in the second block that currently
spans lines 286-291 so both install and legacy-upgrade paths validate the
complete set.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1363aa29-b9be-45a8-aa15-de7ade3e5a03

📥 Commits

Reviewing files that changed from the base of the PR and between ec83f06 and 7506023.

📒 Files selected for processing (25)
  • AGENTS.md
  • README.md
  • RELEASE_NOTES.md
  • bin/install.js
  • bin/sync-agents.js
  • docs/findings.md
  • docs/workflow-guide.md
  • package.json
  • src/agents/step-orchestrator-agent.md
  • src/agents/verification-agent.md
  • src/commands/5/address-review-findings.md
  • src/commands/5/configure.md
  • src/commands/5/discuss-feature.md
  • src/commands/5/eject.md
  • src/commands/5/implement.md
  • src/commands/5/plan.md
  • src/commands/5/review.md
  • src/commands/5/synchronize-agents.md
  • src/commands/5/update.md
  • src/hooks/check-updates.js
  • src/hooks/plan-guard.js
  • src/skills/configure-skills/SKILL.md
  • src/templates/workflow/STATE.json
  • src/templates/workflow/VERIFICATION-REPORT.md
  • test/test-update-system.sh
💤 Files with no reviewable changes (1)
  • src/templates/workflow/VERIFICATION-REPORT.md
✅ Files skipped from review due to trivial changes (6)
  • docs/findings.md
  • src/commands/5/synchronize-agents.md
  • src/commands/5/address-review-findings.md
  • AGENTS.md
  • src/commands/5/configure.md
  • src/skills/configure-skills/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (6)
  • src/agents/verification-agent.md
  • src/templates/workflow/STATE.json
  • package.json
  • src/hooks/plan-guard.js
  • src/commands/5/review.md
  • src/commands/5/eject.md

Comment on lines +1 to +7
---
name: 5:implement
description: Executes a unified plan by spawning step-orchestrator-agent, per-step executor agents, and verification-agent.
allowed-tools: Agent, Read, Write, Glob, Grep, Bash, TaskCreate, TaskUpdate, TaskList
user-invocable: true
argument-hint: [feature-name]
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the missing context field in command frontmatter.

context is required metadata for command files and is currently absent.

✅ Suggested patch
 ---
 name: 5:implement
 description: Executes a unified plan by spawning step-orchestrator-agent, per-step executor agents, and verification-agent.
 allowed-tools: Agent, Read, Write, Glob, Grep, Bash, TaskCreate, TaskUpdate, TaskList
+context: inherit
 user-invocable: true
 argument-hint: [feature-name]
 ---

Based on learnings: "Commands are Markdown files with YAML frontmatter that must include: name, description, allowed-tools, context, and user-invocable properties."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/commands/5/implement.md` around lines 1 - 7, The frontmatter for the
command named "5:implement" is missing the required context field; add a context
entry to the YAML frontmatter (alongside name, description, allowed-tools, and
user-invocable) with an appropriate value (e.g., a short string like
"implementation" or a specific execution context) so the command file includes
the required metadata; update the frontmatter block at the top of the
"5:implement" command markdown to include context.

Comment thread src/commands/5/plan.md
Comment on lines +1 to +7
---
name: 5:plan
description: Plans a feature end-to-end, combines requirements and technical discovery, and writes a unified plan.md. Single review gate before /5:implement.
allowed-tools: Bash, Read, Write, Agent, AskUserQuestion, mcp__claude_ai_Atlassian_Rovo__getJiraIssue
user-invocable: true
argument-hint: [ticket-id-or-description]
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add the missing context frontmatter key.

This command frontmatter omits context, which breaks the expected command metadata contract.

✅ Suggested patch
 ---
 name: 5:plan
 description: Plans a feature end-to-end, combines requirements and technical discovery, and writes a unified plan.md. Single review gate before /5:implement.
 allowed-tools: Bash, Read, Write, Agent, AskUserQuestion, mcp__claude_ai_Atlassian_Rovo__getJiraIssue
+context: inherit
 user-invocable: true
 argument-hint: [ticket-id-or-description]
 ---

Based on learnings: "Commands are Markdown files with YAML frontmatter that must include: name, description, allowed-tools, context, and user-invocable properties."

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
name: 5:plan
description: Plans a feature end-to-end, combines requirements and technical discovery, and writes a unified plan.md. Single review gate before /5:implement.
allowed-tools: Bash, Read, Write, Agent, AskUserQuestion, mcp__claude_ai_Atlassian_Rovo__getJiraIssue
user-invocable: true
argument-hint: [ticket-id-or-description]
---
---
name: 5:plan
description: Plans a feature end-to-end, combines requirements and technical discovery, and writes a unified plan.md. Single review gate before /5:implement.
allowed-tools: Bash, Read, Write, Agent, AskUserQuestion, mcp__claude_ai_Atlassian_Rovo__getJiraIssue
context: inherit
user-invocable: true
argument-hint: [ticket-id-or-description]
---
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/commands/5/plan.md` around lines 1 - 7, The frontmatter for the command
named "5:plan" is missing the required context key; update the YAML frontmatter
at the top of the file (the block containing name, description, allowed-tools,
user-invocable) to include a context entry (for example context:
"feature-planning" or another appropriate short identifier) so the metadata
contract is satisfied; ensure the context key is a simple string and placed
alongside the existing keys in the frontmatter.

Comment on lines +190 to +201
if [ -f ".codex/skills/5-plan/SKILL.md" ]; then
echo "✓ Commands converted to Codex skills"
else
echo "✗ Codex skills not created"
exit 1
fi
if [ -f ".codex/agents/step-orchestrator-agent.md" ] && [ -f ".codex/agents/step-executor-agent.md" ] && [ -f ".codex/agents/verification-agent.md" ]; then
echo "✓ Agents installed for Codex skills"
else
echo "✗ Codex agents not installed"
exit 1
fi
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Assert the full v2 Codex skill set after install and legacy upgrade.

Line 190 and Line 286 only validate a subset of required skills, so missing 5-review (and 5-implement in fresh install) can slip through undetected.

✅ Suggested patch
-if [ -f ".codex/skills/5-plan/SKILL.md" ]; then
-  echo "✓ Commands converted to Codex skills"
+if [ -f ".codex/skills/5-plan/SKILL.md" ] && [ -f ".codex/skills/5-implement/SKILL.md" ] && [ -f ".codex/skills/5-review/SKILL.md" ]; then
+  echo "✓ Commands converted to Codex skills"
 else
   echo "✗ Codex skills not created"
   exit 1
 fi
@@
-if [ -f ".codex/skills/5-plan/SKILL.md" ] && [ -f ".codex/skills/5-implement/SKILL.md" ]; then
+if [ -f ".codex/skills/5-plan/SKILL.md" ] && [ -f ".codex/skills/5-implement/SKILL.md" ] && [ -f ".codex/skills/5-review/SKILL.md" ]; then
   echo "✓ New Codex v2 skills installed for legacy upgrade"
 else
   echo "✗ New Codex v2 skills missing after legacy upgrade"
   exit 1
 fi

Also applies to: 286-291

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/test-update-system.sh` around lines 190 - 201, The test currently only
checks a subset of Codex skills and agents; update test/test-update-system.sh to
assert the full v2 skill set by adding checks for
".codex/skills/5-review/SKILL.md" and ".codex/skills/5-implement/SKILL.md"
(ensure both are required for fresh installs and upgrades) alongside the
existing ".codex/skills/5-plan/SKILL.md" check, and mirror these additional
assertions in the second block that currently spans lines 286-291 so both
install and legacy-upgrade paths validate the complete set.

Copy link
Copy Markdown
Owner Author

mrsthl commented May 1, 2026

Workflow review findings

I reviewed the current workflow, installer/update path, Claude-to-Codex conversion, and token-heavy command/skill files. npm test passes, but I found these issues and improvement opportunities:

Bugs / inconsistencies

  1. High: pre-release updates can be missed

    • bin/install.js compares versions with parseInt, so 2.0.0-beta-2, 2.0.0-beta-3, and 2.0.0-beta-10 compare equal at the patch segment.
    • Because the package is currently beta-versioned, --check / --upgrade can report "up to date" when a newer beta exists.
    • Relevant file: bin/install.js compareVersions().
  2. High: rename components are supported in plans but not representable in state

    • The planner/orchestrator allow rename, but state.json only has a single file field.
    • verification-agent expects both source removal and destination existence, so rename work can produce inconsistent executor/verification behavior.
    • Relevant files: src/agents/step-orchestrator-agent.md, src/agents/verification-agent.md, src/templates/workflow/STATE.json.
  3. Medium: Codex conversion leaves Claude-specific setup commands in $5-configure

    • $5-configure can still tell Codex users to run claude mcp add ... or claude plugin install ....
    • The converter only rewrites slash commands and .claude/ paths, not runtime-specific CLI setup instructions.
    • Relevant files: src/commands/5/configure.md, bin/install.js conversion helpers.
  4. Medium: auto-commit is collected but not implemented

    • Configure asks whether implementation should commit after each step and state includes commitResults.
    • /5:implement has no commit phase or git.autoCommit handling.
    • This creates dead config and a false promise in the workflow.
  5. Medium: review-fix rollback can overwrite unrelated user edits

    • address-review-findings says to restore whole files from git show HEAD:{file} after a build failure.
    • If the user had pre-existing uncommitted edits in that file, they can be lost.
    • Safer approach: snapshot touched file contents before applying fixes, or revert only the hunks introduced by this command.
  6. Low: manifest verification is incomplete

    • test/verify-install-js.sh only enumerates root src/templates/*.md, so nested workflow templates are not verified from the filesystem.
    • It also does not verify command files or references.
    • Installer drift could slip through despite the test saying all workflow files are listed.

Token / speed improvement opportunities

  • The largest prompt-cost files are:
    • src/commands/5/configure.md at ~472 lines
    • src/commands/5/address-review-findings.md at ~424 lines
    • src/skills/configure-skills/SKILL.md at ~314 lines

Suggested reductions:

  • Split GitHub PR comment handling from /5:address-review-findings into a dedicated command/skill, e.g. /5:address-pr-comments / $5-address-pr-comments.
  • Move Context7/plugin installation out of /5:configure; keep configure focused on writing .5/config.json and the CONFIGURE plan.
  • Replace the long embedded CONFIGURE plan text with a template file, e.g. .claude/templates/workflow/CONFIGURE-PLAN.md, and have the command fill it.
  • Add a runtime variable convention like {runtimeDir} = .claude or .codex instead of relying on broad string replacement.

Verification

  • Ran npm test; all current tests passed.
  • The current tests cover installer/update behavior, but not the workflow execution semantics listed above.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d5658a96cd

ℹ️ 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".

Comment thread bin/install.js
Comment on lines 366 to 369
skills: [
'configure-docs-index',
'configure-project',
'configure-skills',
'generate-readme'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include legacy utility skill in Codex uninstall cleanup

Because codexUninstall() deletes utility skills by iterating getWorkflowManagedFiles().skills, removing configure-project from this list means legacy Codex installs now keep .codex/skills/configure-project even after a reported successful uninstall. This regression appears when uninstalling a pre-v2 layout (now detected as installed via legacy markers), and leaves workflow-owned artifacts behind.

Useful? React with 👍 / 👎.

Comment thread bin/install.js
Comment on lines 393 to 397
'workflow/PLAN.md',
'workflow/STATE.json',
'workflow/VERIFICATION-REPORT.md',
'workflow/REVIEW-FINDINGS.md',
'workflow/REVIEW-SUMMARY.md',
'workflow/FIX-PLAN.md'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve legacy workflow templates in uninstall removal set

Codex uninstall removes templates using getWorkflowManagedFiles().templates; after dropping legacy entries from this list, uninstalling a legacy Codex install no longer deletes workflow templates like workflow/FEATURE-SPEC.md and workflow/VERIFICATION-REPORT.md. The command still prints success, so users are left with stale workflow-managed files that should have been removed.

Useful? React with 👍 / 👎.

- Updated `verification-agent` to account for both `sourceFile` and `file` in rename checks.
- Modified `workflow/STATE.json` to include `sourceFile` field.
- Clarified `rename` behavior in `plan.md`.
- Enhanced `step-executor-agent` to handle `sourceFile` for renames during execution.
- Adjusted `step-orchestrator-agent` to set `sourceFile` and `file` for rename components.
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (1)
src/commands/5/plan.md (1)

1-7: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Frontmatter is missing required context key.

5:plan still violates the command metadata contract without context, which can break command loading/behavior in tooling expecting the full schema.

Suggested patch
 ---
 name: 5:plan
 description: Plans a feature end-to-end, combines requirements and technical discovery, and writes a unified plan.md. Single review gate before /5:implement.
 allowed-tools: Bash, Read, Write, Agent, AskUserQuestion, mcp__claude_ai_Atlassian_Rovo__getJiraIssue
+context: inherit
 user-invocable: true
 argument-hint: [ticket-id-or-description]
 ---

Based on learnings: "Commands are Markdown files with YAML frontmatter that must include: name, description, allowed-tools, context, and user-invocable properties."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/commands/5/plan.md` around lines 1 - 7, The frontmatter for the command
"5:plan" is missing the required context key; update the YAML frontmatter at the
top of src/commands/5/plan.md to include a context entry (e.g., context:
<appropriate context string or object>) so the metadata contains name,
description, allowed-tools, context, and user-invocable; ensure the new context
key follows the same format/style as other commands in the repo and validate the
frontmatter parsing after the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/agents/step-executor-agent.md`:
- Line 16: The rename step currently requires reading both sourceFile and file
which fails when destination doesn't exist; update the rename handling (the
logic that processes the "rename" step) to make the destination read
conditional: always read sourceFile first to obtain content, then check if
destination file (file) exists before attempting to read it—if it exists, read
and compute the smallest coherent change between sourceFile and file; if it does
not exist, proceed to move/rename using sourceFile content without failing.
Adjust any functions or methods that reference sourceFile and file in the rename
flow to tolerate a missing destination and ensure state.json semantics
(sourceFile = original, file = destination) remain unchanged.

In `@src/agents/step-orchestrator-agent.md`:
- Around line 65-68: The example orchestrator state schema is missing the
verification status fields; update the schema example (the JSON snippet
containing "verificationResults", "commitResults", "startedAt", "lastUpdated")
to include "verificationStatus" (e.g., values like "pending"/"passed"/"failed")
and "verifiedAt" (ISO timestamp) so the recorded state.json matches the
canonical workflow shape produced by verification-agent and supports downstream
verification updates.

---

Duplicate comments:
In `@src/commands/5/plan.md`:
- Around line 1-7: The frontmatter for the command "5:plan" is missing the
required context key; update the YAML frontmatter at the top of
src/commands/5/plan.md to include a context entry (e.g., context: <appropriate
context string or object>) so the metadata contains name, description,
allowed-tools, context, and user-invocable; ensure the new context key follows
the same format/style as other commands in the repo and validate the frontmatter
parsing after the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9ae671a6-5807-4b3c-ab27-6a909f090064

📥 Commits

Reviewing files that changed from the base of the PR and between 7506023 and 23ba140.

📒 Files selected for processing (10)
  • bin/install.js
  • package.json
  • src/agents/step-executor-agent.md
  • src/agents/step-orchestrator-agent.md
  • src/agents/verification-agent.md
  • src/commands/5/plan.md
  • src/hooks/check-updates.js
  • src/hooks/statusline.js
  • src/templates/workflow/STATE.json
  • test/test-version-compare.sh
✅ Files skipped from review due to trivial changes (2)
  • src/agents/verification-agent.md
  • src/templates/workflow/STATE.json
🚧 Files skipped from review as they are similar to previous changes (2)
  • package.json
  • src/hooks/check-updates.js


1. Read every file listed in `patternFiles` or `Read First` before editing.
2. For `modify`, read the target file first and make the smallest coherent change.
3. For `rename`, read both `sourceFile` and `file` first, then move content with the smallest coherent change.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Rename step currently requires reading a file that often does not exist

For rename, requiring a pre-read of both sourceFile and destination file is brittle: destination paths typically do not exist yet, so this can cause valid renames to fail. Make destination read conditional (only if it already exists), and otherwise proceed with source read + rename.

Suggested wording update
-3. For `rename`, read both `sourceFile` and `file` first, then move content with the smallest coherent change.
+3. For `rename`, read `sourceFile` first. If destination `file` already exists, read it to avoid clobbering; otherwise create/move to `file` with the smallest coherent change.

Based on learnings: step-orchestrator-agent.md writes state.json with rename components using sourceFile as original path and file as destination path.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
3. For `rename`, read both `sourceFile` and `file` first, then move content with the smallest coherent change.
3. For `rename`, read `sourceFile` first. If destination `file` already exists, read it to avoid clobbering; otherwise create/move to `file` with the smallest coherent change.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/agents/step-executor-agent.md` at line 16, The rename step currently
requires reading both sourceFile and file which fails when destination doesn't
exist; update the rename handling (the logic that processes the "rename" step)
to make the destination read conditional: always read sourceFile first to obtain
content, then check if destination file (file) exists before attempting to read
it—if it exists, read and compute the smallest coherent change between
sourceFile and file; if it does not exist, proceed to move/rename using
sourceFile content without failing. Adjust any functions or methods that
reference sourceFile and file in the rename flow to tolerate a missing
destination and ensure state.json semantics (sourceFile = original, file =
destination) remain unchanged.

Comment on lines +65 to +68
"verificationResults": {},
"commitResults": [],
"startedAt": "{ISO-timestamp}",
"lastUpdated": "{ISO-timestamp}"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add missing verification status fields to the orchestrator state schema.

The schema example omits verificationStatus and verifiedAt, which makes the orchestrator output contract drift from the canonical workflow state shape and can break downstream verification updates.

Suggested patch
   "baseline": {},
+  "verificationStatus": "pending",
   "verificationResults": {},
+  "verifiedAt": null,
   "commitResults": [],
   "startedAt": "{ISO-timestamp}",
   "lastUpdated": "{ISO-timestamp}"

Based on learnings: "verification-agent.md verifies completeness, correctness, build/tests, acceptance criteria, and test coverage, then records concise status in state.json."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/agents/step-orchestrator-agent.md` around lines 65 - 68, The example
orchestrator state schema is missing the verification status fields; update the
schema example (the JSON snippet containing "verificationResults",
"commitResults", "startedAt", "lastUpdated") to include "verificationStatus"
(e.g., values like "pending"/"passed"/"failed") and "verifiedAt" (ISO timestamp)
so the recorded state.json matches the canonical workflow shape produced by
verification-agent and supports downstream verification updates.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 23ba14094f

ℹ️ 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".

Comment thread bin/sync-agents.js
Comment on lines 28 to 32
const WORKFLOW_MANAGED_SKILLS = new Set([
'configure-docs-index',
'configure-project',
'configure-skills',
'generate-readme'
]);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep legacy configure-project excluded from skill sync

Removing configure-project from WORKFLOW_MANAGED_SKILLS makes sync-agents treat that legacy workflow skill as user-owned content, so /5:synchronize-agents can copy stale configure-project directories between .claude and .codex. This affects repos that still carry legacy artifacts during migration and can reintroduce deprecated workflow-owned files after they were supposed to be cleaned up; the legacy skill should remain excluded from user-content sync.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 77d94637fc

ℹ️ 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".

Comment thread bin/install.js
'1. "Install now" — not supported automatically in Codex; install Context7 using your Codex MCP setup outside this workflow, then rerun configuration'
)
.replace(
/- If user selects "Install now": execute the install command/g,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Narrow install-command rewrite before skillCreator rewrite

The broad replacement /- If user selects "Install now": execute the install command/g also matches the skill-creator line in configure.md, so the later skill-creator-specific rewrite never matches. In the generated Codex 5-configure skill this leaves a mixed instruction (leave tools.context7... then set tools.skillCreator.available = true) even though Codex cannot run the installer, which can drive incorrect config state during /5:configure.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ea95dd1627

ℹ️ 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".

Comment thread bin/install.js
Comment on lines +360 to +362
'step-executor-agent.md',
'step-orchestrator-agent.md',
'verification-agent.md'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Include legacy agent in Codex uninstall cleanup

codexUninstall() deletes agents by iterating getWorkflowManagedFiles().agents, but this list now omits the legacy component-executor.md file. Because legacy installs are now detected as valid, uninstalling a legacy Codex layout reports success while leaving .codex/agents/component-executor.md behind, creating a partial uninstall state for migrated users.

Useful? React with 👍 / 👎.

mrsthl added 8 commits May 3, 2026 19:37
- Introduced the `/5:split` command to split a feature plan into smaller independent child plans.
- Documented the new command in `README.md` and `AGENTS.md`.
- Updated installation scripts and test cases to include the split command.
- Added split manifest generation for tracking parent-child feature relationships.
- Enabled Codex skill support for the split workflow.
- Update package.json version from 2.0.0-beta-3 to 2.0.0-beta-4
- Update package.json version from 2.0.0-beta-4 to 2.0.0-beta-5
- Update package.json version from 2.0.0-beta-5 to 2.0.0-beta-6
@mrsthl
Copy link
Copy Markdown
Owner Author

mrsthl commented May 17, 2026

Fixed: added context: inherit to the frontmatter of address-review-findings.md — the only command file that was still missing it.

@mrsthl mrsthl merged commit e23ab06 into main May 17, 2026
1 check passed
@mrsthl mrsthl deleted the refactor-workflow-phases branch May 17, 2026 06:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant