Skip to content

Version/1.6.0#18

Merged
zahardev merged 38 commits into
mainfrom
version/1.6.0
Apr 4, 2026
Merged

Version/1.6.0#18
zahardev merged 38 commits into
mainfrom
version/1.6.0

Conversation

@zahardev

@zahardev zahardev commented Apr 3, 2026

Copy link
Copy Markdown
Owner

Added

  • Three-layer context model: specs (requirements) → tasks (plan + progress) → briefs (working knowledge) for persistent AI context across sessions
  • New skills: /start-feature, /run-steps, /finish-task, /plan-tasks, /do-it, /align-context, /gh-review-fix-loop
  • Shared step inner loop (step-loop.md): single source of truth for the implement → review → test → commit cycle, referenced by /run-steps and /do-it
  • Spec files (.aicontext/specs/): feature-level requirements, decisions, and non-goals — survive refactors, no file paths or implementation details
  • Brief files (.aicontext/data/brief/): gitignored working memory the AI appends to after each step — enables seamless session restarts via /check-task
  • Worklog (.aicontext/worklog.md): spec and task status tracking, replaces changelog.md. AI-generated, gitignored.
  • Spec↔task drift detection in /check-task: identifies spec requirements not covered by task steps, offers to add steps or create separate tasks
  • Requirement coverage check: whenever the AI adds a spec requirement, it immediately verifies task step coverage
  • Configurable commit rules: project-level defaults in project.md, per-task overrides in task files, personal overrides in local.md
  • Quality checks table in process.md: configurable matrix of what checks run after steps vs after tasks
  • New templates: spec.template.md, brief.template.md, worklog.template.md
  • Specs directory (.aicontext/specs/.gitkeep) created during aicontext init
  • Codex skill mirrors for all new skills
  • /review skill: unified review with scope args (diff, branch, commit, path, IDE selection) — replaces /diff-review and /branch-review
  • /deep-review skill: comprehensive architecture + correctness review with 11-phase methodology (DRY & KISS, Placement, Responsibilities, API Design, Edge Cases, Bugs & Security, Framework Usage, Constants & Naming, Dependencies & Testability, Error Handling, Extensibility)
  • Review criteria prompts: review-criteria.md, deep-review-criteria.md, review-scope.md — shared between all tools, not just Claude Code
  • Code review template (code-review.template.md): persistent review tracking with refactoring actions, findings, decisions
  • close-step.md prompt: enforces brief/spec updates after each step with visible summary output — prevents agents from skipping context updates
  • commit_body option in Commit Rules: controls whether commits include a body (default: true — body with what/why + Co-Authored-By trailer)
  • /web-inspect skill: browser-based investigation using playwright-cli — open pages in headed mode, inspect elements via snapshots, check console errors, capture screenshots. Useful for UI debugging, manual AI testing, and verifying fixes visually
  • /aic-help and /aic-skills framework meta-skills: /aic-help shows a quickstart guide with workflows and best practices; /aic-skills lists all available skills grouped by workflow stage
  • /create-task skill: create a task file from conversation context — lighter alternative to /start-feature when a full discovery interview isn't needed
  • /add-step skill: add a new step to the current task from conversation context — plan ahead without implementing
  • Reusable task identification (identify-task.md): shared prompt for finding the active task, prioritizing IDE-opened files

Changed

  • Renamed /start-task/start-feature: always creates spec + task, no complexity assessment — small work uses direct conversation
  • Renamed "Acceptance Criteria" → "Requirements" in specs: plain list (no checkboxes), detailed enough for task creation
  • Prompts as single source of truth: all skill/agent instructions live in .aicontext/prompts/, skills are thin wrappers
  • /check-task now reads three layers (spec → brief → task) with staleness checks
  • /gh-review-fix-loop cycle reordered: fetch first → triage → fix → test → capture count → commit+push → poll
  • Script paths in prompts use .aicontext/scripts/ (universal) instead of .claude/scripts/
  • removeDeprecatedSkills now cleans both .claude/skills/ and .codex/skills/
  • Process rule "stop after step" scoped to manual execution only (not /run-steps)
  • Task template simplified: no acceptance criteria or out-of-scope sections (both live in spec)
  • Merged deep-reviewer and standards-checker into single reviewer agent — caller specifies criteria prompt, agent is generic
  • Review prompts are self-contained workflows: setup, scope, criteria, save with template, present — work identically inline or via agent
  • Two review tiers: /review = quick correctness (after step), /deep-review = comprehensive (after task)
  • Step inner loop simplified from 11 to 9 steps — close-step replaces separate update/brief/elevate steps
  • /run-steps commit logic simplified: only commits per-step, per-task commits handled by /finish-task via finish_action
  • /finish-task warns when finish_action: nothing but uncommitted changes exist
  • Merged /code-health into /deep-review: cross-file checks (duplication, consistency, structural metrics) added as expanded phases — /deep-review all replaces /code-health for full codebase scans
  • Renamed /pr-review-check/gh-review-check and /check-plan/review-plan for naming consistency
  • Commit messages must describe the staged diff, not session memory
  • PR scripts moved from .claude/scripts/ to .aicontext/scripts/; pr-reviews.js uses __dirname for output path resolution

Deprecated

  • changelog.md — replaced by worklog.md. Deprecation notice injected during aicontext update.
  • /start-task skill — replaced by /start-feature
  • /diff-review and /branch-review — replaced by /review with scope args
  • /standards-check — fully subsumed by /deep-review
  • deep-reviewer and standards-checker agents — merged into single reviewer agent
  • /code-health — merged into /deep-review
  • /pr-review-check — renamed to /gh-review-check
  • /check-plan — renamed to /review-plan
  • .claude/scripts/ directory — scripts moved to .aicontext/scripts/

Summary by CodeRabbit

  • New Features

    • Many new invocable commands for planning, executing, reviewing, and releasing (start-feature, plan-tasks, run-steps/run-step, do-it/add-step, commit, finish-task, gh-review-check, gh-review-fix-loop, web-inspect, draft-pr/issue, review/deep-review).
  • Changes

    • Replaced changelog with a persistent worklog and added configurable commit/finish behaviors (per-step vs per-task).
    • Introduced a three-layer context model (spec → task → brief) and automated PR review/fix loops.
    • Consolidated prompt-driven workflows and deprecated several legacy skills/scripts.
  • Documentation

    • Major new docs, templates, quick-start guide, standardized prompts and a centralized skills reference.

zahardev added 25 commits April 1, 2026 11:00
- Strong no-body enforcement when commit_body: false (no trailers, no Co-Authored-By)
- When true: body explains what/why, ends with Co-Authored-By: {ai} via AIContext
- Default changed from false to true in template and project

Co-Authored-By: Claude via AIContext
Invites the AI to surface questions, wrong assumptions, concerns,
and better alternatives before moving forward. Also updates commit
body rules to focus on "why" instead of "what" — the diff already
shows what changed.

Co-Authored-By: Claude Opus 4.6 (1M context) via AIContext
/code-health checks (cross-file duplication, consistency, structural
metrics) absorbed into deep-review as Phase 12, scoped to `all` only.
Both review skills now triage findings before saving so the review
file's Recommendation column is always filled. Deep-review offers
scope-appropriate follow-up (fix or create issues).

Also fixes: missing standards.md in /review setup, duplicate setup
in deep-review-criteria, unnumbered review-criteria output, missing
`all` option in scope menu.

Co-Authored-By: Claude Opus 4.6 (1M context) via AIContext
Minimal, tool-agnostic skill wrapping playwright-cli — headed mode by default
for security, snapshot-first workflow, optional auth state persistence.
Single prompt file with awareness line in standards.md so AI proactively
suggests it for web UI work.

Co-Authored-By: Claude via AIContext
Five prompts duplicated "Identify the active task (per process.md rules)" —
an indirect reference that was easy to skip past. Now each references
identify-task.md directly, which front-loads the IDE-opened file as signal #1
(the most reliable when present). Rules removed from process.md to keep a
single source of truth.

Co-Authored-By: Claude via AIContext
Extracts the "add step" workflow from /do-it into a standalone skill that
stops after creating the step — no implementation. Useful when planning
ahead or queuing work without immediately executing it.

Co-Authored-By: Claude via AIContext
Crystallizes discussion into a task file without running a full
/start-feature interview. Links to existing spec if applicable,
updates worklog, suggests next actions.

Co-Authored-By: Claude via AIContext
@coderabbitai

coderabbitai Bot commented Apr 3, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 82c981e2-bb1c-4e3b-b9eb-97ad1e613136

📥 Commits

Reviewing files that changed from the base of the PR and between 28e64ff and f4b01a8.

📒 Files selected for processing (1)
  • package.json
✅ Files skipped from review due to trivial changes (1)
  • package.json

📝 Walkthrough

Walkthrough

Centralizes procedural prompts under .aicontext/prompts/, introduces a three-layer context model (spec → task → brief), migrates PR-review tooling into .aicontext/scripts/, adds many skill manifests and templates, removes the standards-checker agent, and updates CLI init/update, worklog handling, and tests.

Changes

Cohort / File(s) Summary
Prompts (centralized)
\.aicontext/prompts/*
add-step.md, aic-help.md, aic-skills.md, align-context.md, challenge.md, check-task.md, close-step.md, commit.md, create-task.md, deep-review-criteria.md, deep-review.md, do-it.md, draft-issue.md, draft-pr.md, finish-task.md, generate.md, gh-review-check.md, gh-review-fix-loop.md, identify-task.md, next-step.md, plan-tasks.md, prepare-release.md, review-criteria.md, review-scope.md, review.md, run-step.md, run-steps.md, start-feature.md, start.md, step-loop.md, test-writer.md, web-inspect.md
Added ~30 unified prompt files; moved procedural behavior into prompt-driven flows covering task lifecycle, step-loop, review/PR workflows, brief/worklog generation, and release flows.
Skill manifests (Claude/Codex)
.claude/skills/*, .codex/skills/*
Added ~25 new skill metadata files delegating to prompts (e.g., run-steps, gh-review-fix-loop, web-inspect, start-feature); removed/deprecated older skills (branch-review, diff-review, code-health, standards-check, pr-review-check) and replaced inline logic with prompt pointers.
Scripts (PR tooling migrated)
.aicontext/scripts/pr-reviews.js, (removed) .claude/scripts/pr-reviews.js, (removed) .claude/scripts/pr-resolve.js
Moved PR-review scripts to .aicontext/; updated pr-reviews.js to accept config-driven skip paths, script-relative output dir, and --count mode; removed legacy .claude/ script variants and related exported helpers.
Agents & agent configs
.claude/agents/reviewer.md, .claude/agents/standards-checker.md, .claude/CLAUDE.md
Removed standards-checker agent; constrained reviewer to follow caller prompts and limited its write/output behavior; adjusted CLAUDE defaults and agent-invocation guidance.
Templates
.aicontext/templates/*
brief.template.md, code-review.template.md, project.template.md, release.template.md, spec.template.md, task.template.md, worklog.template.md
Added/updated templates for Brief, Code Review, Project/Spec/Task/Release, and Worklog. Task template gains Spec link and Commit Rules.
Process & standards
.aicontext/rules/process.md, .aicontext/rules/standards.md, .cursor/rules/aicontext.mdc, .github/copilot-instructions.md
Updated timing/triage rules, restricted “stop after step” to manual runs, switched changelog updates to worklog, added commit-style config and memory-vs-project rules, and introduced use <name> prompt rule.
Worklog / Changelog & gitignore
.aicontext/changelog.md, .aicontext/worklog.md, CHANGELOG.md, .gitignore
Deprecated .aicontext/changelog.md in favor of .aicontext/worklog.md; added worklog/release files to .gitignore; init/update now prepends deprecation notice to existing changelog when present.
CLI / Init & Update logic
bin/aicontext.js, test/cli.test.js
Expanded framework/deprecated prompt/skill lists; added prompt overwrite control (skipExisting), adjusted init/update messaging to reference worklog, preserved old changelog with deprecation notice; updated related tests/fixtures.
Tests & imports
test/pr-reviews.test.js, test/pr-resolve.test.js, test/cli.test.js
Updated tests to import helpers from .aicontext/scripts/, adapted buildEntries(threads, skipPaths) signature usage, added console suppression, and broadened expected framework catalogs.
Docs & references
docs/development-model.md, docs/skills.md, docs/workflow.md, README.md
Added/expanded docs describing three-layer model, skill reference, workflows, and condensed/updated README/Version History for v1.6.0.
Removed / Relocated files
.claude/scripts/pr-resolve.js, .claude/scripts/pr-reviews.js, multiple deprecated skill files
Deleted legacy scripts and deprecated skill manifests to centralize scripts/prompts under .aicontext/ and update exported helper signatures.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant CLI as "bin/aicontext.js"
    participant Scripts as ".aicontext/scripts/pr-reviews.js"
    participant GH as "GitHub (gh API)"
    participant Agent as "reviewer/subagents"

    User->>CLI: invoke gh-review-check / gh-review-fix-loop
    CLI->>Scripts: run pr-reviews.js (with config / skipPaths)
    Scripts->>GH: query unresolved review threads (gh api)
    GH-->>Scripts: return review threads
    Scripts->>Agent: send threads for triage (fix/resolve/skip)
    Agent-->>Scripts: provide actions/replies
    Scripts->>GH: post replies / resolve threads as instructed
    Scripts-->>CLI: write report to .aicontext/data/github-pr-reviews/
    CLI-->>User: return report filename / summary
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • Version/1.5.0 #16 — Continues/prior work migrating PR-review scripts and exported helper signatures; likely overlap in pr-reviews/pr-resolve changes.
  • Version/1.4.0 #14 — Overlaps PR-review tooling, skill manifests, and integration affecting the review/fix loop.
  • Version 1.3.0 #13 — Related prompt/content conflicts (e.g., after_step.md) and prompt-management logic in init/update.

Poem

🐰 In burrows bright the prompts align,

Specs and tasks in tidy line.
Scripts hopped home, the briefs took root,
Worklogs bloom — a neat pursuit.
I twitch my nose and toast the change.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch version/1.6.0

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 19

Caution

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

⚠️ Outside diff range comments (1)
.codex/skills/check-task/SKILL.md (1)

1-4: ⚠️ Potential issue | 🟡 Minor

Missing disable-model-invocation: true in frontmatter.

All .claude/skills/*/SKILL.md files and .codex/skills/aic-help/SKILL.md include disable-model-invocation: true to ensure the skill directly reads the prompt file without invoking the model first. This Codex skill should follow the same pattern for consistency.

🔧 Proposed fix to add the flag
 ---
 name: check-task
 description: Use when the user wants a task file analyzed before implementation so ambiguities, conflicts, and risky assumptions can be surfaced early.
+disable-model-invocation: true
 ---
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.codex/skills/check-task/SKILL.md around lines 1 - 4, The SKILL.md
frontmatter is missing the disable-model-invocation: true flag; update the YAML
frontmatter at the top of the file (around the existing name/description keys)
to include disable-model-invocation: true so the skill reads the prompt file
directly before any model invocation.
🧹 Nitpick comments (10)
.gitignore (1)

31-33: Consider preserving the brief directory scaffold in VCS.

Ignoring .aicontext/data/brief/ entirely can make fresh clones miss expected folder structure unless setup always recreates it. Consider keeping a .gitkeep exception for stability.

Suggested `.gitignore` tweak
 # Brief files (temporary, agent-to-agent knowledge transfer)
 .aicontext/data/brief/
+!.aicontext/data/brief/.gitkeep
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.gitignore around lines 31 - 33, The .gitignore entry ignores the entire
.aicontext/data/brief/ directory which can cause new clones to miss the expected
scaffold; update .gitignore to allow preserving the directory by adding an
exception for a placeholder (e.g., add a .gitkeep inside .aicontext/data/brief/
and add an allow rule like "!/.aicontext/data/brief/.gitkeep") so the folder is
tracked while other contents remain ignored—refer to the .gitignore entry for
".aicontext/data/brief/" and create the .gitkeep file in that directory.
test/pr-reviews.test.js (1)

162-188: Consider making OUTPUT_DIR configurable for better test isolation.

The nextIteration tests create a temp directory but cannot use it because OUTPUT_DIR is hardcoded in the module. The tests acknowledge this limitation in comments and only verify that the function returns a number without throwing.

To properly test iteration logic (e.g., detecting existing files and incrementing), consider exporting a factory or accepting an optional outputDir parameter.

💡 Example approach
-function nextIteration(prNumber) {
-  fs.mkdirSync(OUTPUT_DIR, { recursive: true });
+function nextIteration(prNumber, outputDir = OUTPUT_DIR) {
+  fs.mkdirSync(outputDir, { recursive: true });
   const pattern = new RegExp(`^pr-${prNumber}-(\\d+)\\.md$`);
   let max = 0;

-  for (const file of fs.readdirSync(OUTPUT_DIR)) {
+  for (const file of fs.readdirSync(outputDir)) {
     const match = file.match(pattern);
     if (match) max = Math.max(max, parseInt(match[1], 10));
   }

   return max + 1;
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/pr-reviews.test.js` around lines 162 - 188, The tests can't isolate
nextIteration because OUTPUT_DIR is hardcoded; update the implementation of
nextIteration to accept an optional outputDir parameter (or export a factory
like createNextIteration({ outputDir })) and fall back to the existing
OUTPUT_DIR when not provided, then update the tests to pass the
tempDir/.aicontext/data/github-pr-reviews path into nextIteration (or
instantiate the factory with that path) so tests can create and inspect files in
a real temp directory without relying on hardcoded paths; ensure function name
nextIteration and the default constant OUTPUT_DIR remain usable for backward
compatibility.
.aicontext/prompts/next-step.md (1)

3-5: Consider clarifying the actions when discoveries or plan updates are needed.

Steps 3 and 4 pose questions but don't specify what to do when the answer is "yes." Step 5 only covers the "nothing to update" path. Consider adding guidance for the affirmative cases:

💡 Suggested clarification
 3. Based on the results of the previous steps, did you discover any information that should be reflected in the task output?
-4. Given your current knowledge, do you need to update or adjust the plan?
-5. If nothing to update, begin implementing the next step
+   - If yes, update the task output section accordingly.
+4. Given your current knowledge, do you need to update or adjust the plan?
+   - If yes, revise the remaining steps in the task file.
+5. Begin implementing the next step.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.aicontext/prompts/next-step.md around lines 3 - 5, Steps 3 and 4 in
.aicontext/prompts/next-step.md ask whether discoveries or plan updates are
needed but omit the follow-up actions; update the prompt to explicitly state
what to do for affirmative answers: for "yes" to Step 3, instruct the agent to
incorporate the new information into the task output, annotate what changed and
why (provenance/context), and mark the output as updated; for "yes" to Step 4,
instruct the agent to modify the plan (show the updated plan steps, highlight
changes), re-evaluate priorities/dependencies, and loop back to re-run the next
step with the revised plan; also change Step 5 to be conditional ("If nothing to
update, begin implementing the next step") so the flow covers both branches.
.aicontext/prompts/prepare-release.md (1)

19-19: Use a fully qualified config path consistently.

Lines 19/35/38 reference release.md while earlier steps use .aicontext/release.md. Keep one canonical path to avoid accidental reads/writes in the repo root.

Suggested fix
-- Read the `## Notes` section in `release.md` for project-specific release rules
+- Read the `## Notes` section in `.aicontext/release.md` for project-specific release rules

-For each row in the `## Files to Update` table in `release.md`:
+For each row in the `## Files to Update` table in `.aicontext/release.md`:

-- When updating a changelog file, apply these writing principles by default. If `release.md` `## Notes` contains a `### Changelog Style` subsection, use that instead:
+- When updating a changelog file, apply these writing principles by default. If `.aicontext/release.md` `## Notes` contains a `### Changelog Style` subsection, use that instead:

Also applies to: 35-35, 38-38

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

In @.aicontext/prompts/prepare-release.md at line 19, Replace inconsistent
references to the short path "release.md" with the fully qualified
".aicontext/release.md" inside the prompt file prepare-release.md so all
occurrences (notably the mentions on lines shown in the review) use the
canonical path; update the three string occurrences that currently read
"release.md" to ".aicontext/release.md" so reads/writes always target the same
config file.
.aicontext/templates/project.template.md (1)

90-90: Document the commit_template field.

The commit_template: "description" field is set but not explained in the documentation section (lines 94-107). Consider adding a brief explanation of what template options are available and what "description" means.

📝 Suggested documentation addition

Add documentation after line 97 or line 101:

 - `per-task` — no commits during steps, commit once via `/finish-task`
 
+**commit_template** — format of the commit subject line:
+- `"description"` — uses step/task description as-is
+- (other templates can be documented as they are implemented)
+
 **commit_body** — what goes after the subject line:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.aicontext/templates/project.template.md at line 90, The commit_template
field is present but undocumented; update the documentation section to describe
the commit_template option (the commit_template: "description" value), listing
available template options and explaining what "description" does (e.g., uses
the project description as the commit message), include examples of other
possible values and a short example usage — edit the docs near the existing
template/configuration documentation and reference commit_template and the
"description" value so readers know expected behavior.
.aicontext/templates/code-review.template.md (1)

8-12: Consider clarifying or consolidating the "Recommendation" and "Action" columns.

The table includes both "Recommendation" and "Action" columns, which appear to track similar fix/skip decisions. If they serve distinct purposes (e.g., Recommendation = reviewer's suggestion, Action = team's decision), document this in the template header. Otherwise, consider consolidating them into a single column to reduce redundancy.

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

In @.aicontext/templates/code-review.template.md around lines 8 - 12, The
template's table currently has redundant "Recommendation" and "Action" columns;
update the template (in .aicontext/templates/code-review.template.md) to either
consolidate these into a single column (e.g., "Recommendation/Action") or
explicitly document their distinct purposes in the template header (e.g.,
"Recommendation = reviewer's suggestion; Action = team's decision/implementation
status"), and then adjust the example rows and any explanatory text to match the
change so reviewers understand which column to use.
.aicontext/prompts/review-criteria.md (1)

24-47: Add an example of the APPROVED output format.

Line 47 specifies that reviews with no significant issues should output ## Result: APPROVED, but the example output format (lines 26-43) only demonstrates the findings-present case. Including a brief example of the approved format would improve clarity and ensure consistent formatting when no issues are found.

📋 Suggested addition to the Output section

After line 43, add:

**When no issues are found:**

## Result: APPROVED

### Positive
- [anything well-implemented worth noting]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.aicontext/prompts/review-criteria.md around lines 24 - 47, Add an explicit
example for the "no issues" case to the output examples by appending the
suggested approved-format snippet after the existing findings-present example;
include the exact text "## Result: APPROVED" followed by a "### Positive"
section and a brief note (e.g., "- [anything well-implemented worth noting]") so
the document shows both the findings-present format and the approved-format case
(refer to the current example block that demonstrates numbered findings and the
existing "## Result: APPROVED" token).
.claude/skills/review/SKILL.md (1)

1-14: Note: Similar structure to deep-review skill.

This skill and .claude/skills/deep-review/SKILL.md share nearly identical logic (scope determination → conditional inline/agent execution). If this pattern is used across multiple review types, consider extracting the shared structure into a reusable template or documented pattern to reduce maintenance burden.

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

In @.claude/skills/review/SKILL.md around lines 1 - 14, The review skill
duplicates the scope-determination and execution flow from
.claude/skills/deep-review/SKILL.md; refactor by extracting the shared logic
(the "Determine scope" and "Run review" sections) into a reusable template or
include (e.g., a new common SKILL template or shared markdown fragment) and
update both .claude/skills/review/SKILL.md and
.claude/skills/deep-review/SKILL.md to reference that shared piece instead of
duplicating text so maintenance is centralized.
.aicontext/prompts/add-step.md (1)

7-7: Use consistent path prefix for referenced prompt file.

Line 7 references identify-task.md without a directory prefix, while review.md uses full paths like .aicontext/prompts/review-scope.md and .aicontext/prompts/review-criteria.md. For consistency, use the full path: .aicontext/prompts/identify-task.md.

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

In @.aicontext/prompts/add-step.md at line 7, Replace the relative reference
"identify-task.md" with the full path ".aicontext/prompts/identify-task.md" in
the add-step prompt so it matches the other prompt references (e.g.,
".aicontext/prompts/review-scope.md" and
".aicontext/prompts/review-criteria.md"); specifically update the string
"identify-task.md" in the content of add-step.md to
".aicontext/prompts/identify-task.md".
docs/development-model.md (1)

7-9: Use language identifiers on fenced blocks for lint compliance.

Add text (or md) to these fences to satisfy markdownlint MD040 consistently.

Also applies to: 67-81, 85-95

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

In `@docs/development-model.md` around lines 7 - 9, Add a language identifier to
each fenced code block like the one containing "Spec (what & why)  →  Task (how
& progress)  →  Brief (working knowledge)" by changing the opening fence from
``` to ```text (or ```md) to satisfy markdownlint MD040; do the same for the
other fenced blocks referenced (lines covering the three ranges noted) so every
triple-backtick block has a language tag.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.aicontext/prompts/align-context.md:
- Line 9: Update the brief lookup path in the prompt text so it includes the
`.aicontext/` root to avoid incorrect file reads/writes: change the string that
currently references `data/brief/brief-{task-filename}` (the line "Read the task
file, spec (if linked), and brief (if it exists at
`data/brief/brief-{task-filename}`).") to use
`.aicontext/data/brief/brief-{task-filename}` so agents consistently resolve the
brief under the correct repository root.

In @.aicontext/prompts/check-task.md:
- Line 17: Update the derived brief path string from
"data/brief/brief-{task-filename}" to be rooted under the .aicontext directory
by changing it to ".aicontext/data/brief/brief-{task-filename}" wherever that
template or literal appears in .aicontext/prompts/check-task.md (search for the
exact "data/brief/brief-{task-filename}" token and replace it with
".aicontext/data/brief/brief-{task-filename}").

In @.aicontext/prompts/close-step.md:
- Around line 36-41: The fenced summary block in the prompt template (the
triple-backtick block that begins "Step N closed:") lacks a language tag and
triggers MD040; update that fence to include a language identifier (e.g., change
``` to ```text) so the block becomes a labeled text fence. Locate the fenced
block in .aicontext/prompts/close-step.md (the one containing "Step N closed:"
and the 4-line summary) and replace the opening backticks with ```text while
leaving the contents and closing backticks unchanged.

In @.aicontext/prompts/commit.md:
- Around line 17-20: The prompt currently reviews the staged diff before the
final staging steps, which can cause the commit message to drift; update the
flow so "Stage relevant files and commit" (the staging step) occurs before
"Review the staged diff — the commit message must describe only what is in the
diff" (the review step), and ensure the instruction to "Write a commit message
following the configured `commit_template`" remains after the review so the
message reflects the final staged diff.

In @.aicontext/prompts/create-task.md:
- Line 40: Update the next-action wording to use canonical skill invocation
syntax by replacing the bare tokens "run-steps" and "run-step" with the
slash-prefixed commands "/run-steps" and "/run-step" so the line reads that
users should invoke "/run-steps" to execute all steps automatically or
"/run-step" to start with the first one; modify the string in create-task prompt
where those tokens appear to ensure consistency with other skill invocations.

In @.aicontext/prompts/finish-task.md:
- Line 9: Update the brief path in the prompt text so it uses the repo-absolute
convention: replace the existing `data/brief/brief-{task-filename}` reference
with `.aicontext/data/brief/brief-{task-filename}` in the finish-task prompt
(the line that currently reads "Read the task file, spec (if linked), and brief
(if it exists at `data/brief/brief-{task-filename}`).") to match the other 1.6.0
prompts.
- Around line 50-55: The interactive prompt for when finish_action is unset is
missing the documented "commit+push+pr" choice; update the prompt text in
.aicontext/prompts/finish-task.md to include a fourth option `4. commit+push+pr
— commit, push, and open a PR` (or matching existing phrasing) so users can
manually select the full workflow, and ensure any downstream logic that reads
the `finish_action` value (the code paths handling `commit`, `commit+push`,
etc.) will accept and handle `commit+push+pr` as a valid selection.

In @.aicontext/prompts/gh-review-fix-loop.md:
- Around line 26-28: In .aicontext/prompts/gh-review-fix-loop.md update the
untyped fenced code blocks to include a language identifier by changing the
opening ``` to ```shell for each occurrence that wraps the commands (the blocks
containing "node .aicontext/scripts/pr-reviews.js", "node
.aicontext/scripts/pr-resolve.js --comment-id {id}", and the two "node
.aicontext/scripts/pr-reviews.js --count" examples) so markdownlint MD040 is
satisfied; leave the block contents unchanged and only modify the fence markers
to ```shell.

In @.aicontext/prompts/prepare-release.md:
- Line 43: The markdown heading "## 5. Present summary" skips Step 4; update the
section header (search for the literal "## 5. Present summary") to the correct
numbering—change it to "## 4. Present summary" (or insert the missing Step 4
content if that was intended) so the procedure numbering is consecutive.

In @.aicontext/prompts/run-step.md:
- Line 9: Update the brief path string in the prompt sentence that currently
references "data/brief/brief-{task-filename}" to include the .aicontext root so
it reads ".aicontext/data/brief/brief-{task-filename}"; this change should be
made in the .aicontext/prompts/run-step.md file where the sentence "Read the
task file, spec (if linked), and brief (if it exists at
`data/brief/brief-{task-filename}`)." appears to ensure brief loading uses the
correct storage location.

In @.aicontext/prompts/run-steps.md:
- Around line 8-11: The brief path in the "Read three-layer context" step is
inconsistent: it currently uses `data/brief/brief-{task-filename}` while other
prompts use `.aicontext/data/brief/...`; update the brief reference in that
bullet to the canonical `.aicontext/data/brief/brief-{task-filename}` (e.g.,
change `data/brief/brief-{task-filename}` to
`.aicontext/data/brief/brief-{task-filename}`) so all references to briefs use
the same `.aicontext/data/brief` location.

In @.aicontext/readme.md:
- Around line 105-106: Replace deprecated review command references
`/diff-review` and `/branch-review` in the README with the new unified review
command (e.g., `/review` or the project's canonical unified command). Update
every occurrence mentioned (lines that include `/diff-review`, `/branch-review`,
and the surrounding instructions that reference them) so the text points to the
unified workflow and, if necessary, adjust the example steps to show using the
single command for both uncommitted changes and full-branch reviews.

In @.aicontext/specs/spec-1.6.0-professional-dev-flow.md:
- Around line 44-54: The spec still lists the agent "standards-checker" as a
universal-instruction agent even though that agent was moved to
DEPRECATED_AGENTS; update the Unified Prompts section to remove or mark
"standards-checker" as deprecated and replace it with the current active
agent(s) or a note referencing DEPRECATED_AGENTS so the list accurately reflects
the CLI changes (update the line that currently names "standards-checker" in the
Unified Prompts bullet to either remove it or annotate it as deprecated).

In @.aicontext/templates/worklog.template.md:
- Around line 6-7: The comment starting with "<!--" before "### [Spec
Title](specs/spec-name.md)" is unclosed; update the template to use consistent
HTML comment syntax by adding the missing closing "-->" so that the opening
"<!--" and closing "-->" form a proper pair (ensure the line with "### [Spec
Title](specs/spec-name.md)" is either fully commented with "<!-- ... -->" or
each commented line uses its own "<!-- -->" like the later lines).

In @.claude/skills/finish-task/SKILL.md:
- Line 3: Update the description text in SKILL.md to replace the phrase "update
changelog" with "update worklog" (i.e., change the description line that
currently reads "Close out the current task — verify all steps done, sync spec,
fill completion notes, update changelog, and handle git (commit / push / PR per
config)" so it instead refers to "update worklog"). Also scan the same file for
any other occurrences of the term "changelog" (e.g., under the description key
or nearby task text) and update them to "worklog" to keep terminology
consistent.

In @.codex/skills/create-task/SKILL.md:
- Around line 1-4: Update the frontmatter in the Codex skill
`.codex/skills/create-task/SKILL.md` to match the Claude skill: add the key
`disable-model-invocation: true` to the YAML block and make the `description`
text identical (remove the trailing period so it matches the Claude version);
ensure the frontmatter ordering/keys match exactly so both skill files are
consistent.

In `@CHANGELOG.md`:
- Line 24: The changelog entry for the Commit Rules incorrectly states the
`commit_body` option defaults to `false`; update the line describing
**`commit_body` option** so it indicates the default is `true` (per the 1.6.0
PR). Edit the Commit Rules changelog sentence to read that `commit_body`
defaults to `true` and ensure the wording matches other entries (e.g., "default:
`true` — include subject and body").

In `@docs/workflow.md`:
- Around line 91-94: The doc claims the `/deep-review` workflow uses a 12-phase
methodology but the changelog and v1.6.0 docs reference an 11-phase deep-review;
reconcile by picking the canonical phase count and updating the `/deep-review`
section and its enumerated list to match (either remove or add the phase so the
numbered list aligns with the chosen count). Locate the `/deep-review` heading
and the numbered phase list in docs/workflow.md and adjust the list items and
the introductory sentence to the canonical definition used elsewhere (ensure the
`all` scope note and "Synthesis" phase remain correctly positioned), and update
any cross-references that mention "12-phase" or "11-phase" so they are
consistent.
- Around line 97-111: Update the "Standards Check" section to replace the
deprecated command string "/standards-check" with the current command
"/deep-review" so the documentation reflects the v1.6.0 change; locate the
string "/standards-check" in the Standards Check block and swap it to
"/deep-review" and ensure surrounding prose (section title and example usage)
remains consistent with existing references to "/gh-review-check" and
"/gh-review-fix-loop".

---

Outside diff comments:
In @.codex/skills/check-task/SKILL.md:
- Around line 1-4: The SKILL.md frontmatter is missing the
disable-model-invocation: true flag; update the YAML frontmatter at the top of
the file (around the existing name/description keys) to include
disable-model-invocation: true so the skill reads the prompt file directly
before any model invocation.

---

Nitpick comments:
In @.aicontext/prompts/add-step.md:
- Line 7: Replace the relative reference "identify-task.md" with the full path
".aicontext/prompts/identify-task.md" in the add-step prompt so it matches the
other prompt references (e.g., ".aicontext/prompts/review-scope.md" and
".aicontext/prompts/review-criteria.md"); specifically update the string
"identify-task.md" in the content of add-step.md to
".aicontext/prompts/identify-task.md".

In @.aicontext/prompts/next-step.md:
- Around line 3-5: Steps 3 and 4 in .aicontext/prompts/next-step.md ask whether
discoveries or plan updates are needed but omit the follow-up actions; update
the prompt to explicitly state what to do for affirmative answers: for "yes" to
Step 3, instruct the agent to incorporate the new information into the task
output, annotate what changed and why (provenance/context), and mark the output
as updated; for "yes" to Step 4, instruct the agent to modify the plan (show the
updated plan steps, highlight changes), re-evaluate priorities/dependencies, and
loop back to re-run the next step with the revised plan; also change Step 5 to
be conditional ("If nothing to update, begin implementing the next step") so the
flow covers both branches.

In @.aicontext/prompts/prepare-release.md:
- Line 19: Replace inconsistent references to the short path "release.md" with
the fully qualified ".aicontext/release.md" inside the prompt file
prepare-release.md so all occurrences (notably the mentions on lines shown in
the review) use the canonical path; update the three string occurrences that
currently read "release.md" to ".aicontext/release.md" so reads/writes always
target the same config file.

In @.aicontext/prompts/review-criteria.md:
- Around line 24-47: Add an explicit example for the "no issues" case to the
output examples by appending the suggested approved-format snippet after the
existing findings-present example; include the exact text "## Result: APPROVED"
followed by a "### Positive" section and a brief note (e.g., "- [anything
well-implemented worth noting]") so the document shows both the findings-present
format and the approved-format case (refer to the current example block that
demonstrates numbered findings and the existing "## Result: APPROVED" token).

In @.aicontext/templates/code-review.template.md:
- Around line 8-12: The template's table currently has redundant
"Recommendation" and "Action" columns; update the template (in
.aicontext/templates/code-review.template.md) to either consolidate these into a
single column (e.g., "Recommendation/Action") or explicitly document their
distinct purposes in the template header (e.g., "Recommendation = reviewer's
suggestion; Action = team's decision/implementation status"), and then adjust
the example rows and any explanatory text to match the change so reviewers
understand which column to use.

In @.aicontext/templates/project.template.md:
- Line 90: The commit_template field is present but undocumented; update the
documentation section to describe the commit_template option (the
commit_template: "description" value), listing available template options and
explaining what "description" does (e.g., uses the project description as the
commit message), include examples of other possible values and a short example
usage — edit the docs near the existing template/configuration documentation and
reference commit_template and the "description" value so readers know expected
behavior.

In @.claude/skills/review/SKILL.md:
- Around line 1-14: The review skill duplicates the scope-determination and
execution flow from .claude/skills/deep-review/SKILL.md; refactor by extracting
the shared logic (the "Determine scope" and "Run review" sections) into a
reusable template or include (e.g., a new common SKILL template or shared
markdown fragment) and update both .claude/skills/review/SKILL.md and
.claude/skills/deep-review/SKILL.md to reference that shared piece instead of
duplicating text so maintenance is centralized.

In @.gitignore:
- Around line 31-33: The .gitignore entry ignores the entire
.aicontext/data/brief/ directory which can cause new clones to miss the expected
scaffold; update .gitignore to allow preserving the directory by adding an
exception for a placeholder (e.g., add a .gitkeep inside .aicontext/data/brief/
and add an allow rule like "!/.aicontext/data/brief/.gitkeep") so the folder is
tracked while other contents remain ignored—refer to the .gitignore entry for
".aicontext/data/brief/" and create the .gitkeep file in that directory.

In `@docs/development-model.md`:
- Around line 7-9: Add a language identifier to each fenced code block like the
one containing "Spec (what & why)  →  Task (how & progress)  →  Brief (working
knowledge)" by changing the opening fence from ``` to ```text (or ```md) to
satisfy markdownlint MD040; do the same for the other fenced blocks referenced
(lines covering the three ranges noted) so every triple-backtick block has a
language tag.

In `@test/pr-reviews.test.js`:
- Around line 162-188: The tests can't isolate nextIteration because OUTPUT_DIR
is hardcoded; update the implementation of nextIteration to accept an optional
outputDir parameter (or export a factory like createNextIteration({ outputDir
})) and fall back to the existing OUTPUT_DIR when not provided, then update the
tests to pass the tempDir/.aicontext/data/github-pr-reviews path into
nextIteration (or instantiate the factory with that path) so tests can create
and inspect files in a real temp directory without relying on hardcoded paths;
ensure function name nextIteration and the default constant OUTPUT_DIR remain
usable for backward compatibility.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6006d77b-03e9-4558-96c5-0aa5fc6c91c0

📥 Commits

Reviewing files that changed from the base of the PR and between 1257417 and 786b4b5.

📒 Files selected for processing (128)
  • .aicontext/changelog.md
  • .aicontext/prompts/add-step.md
  • .aicontext/prompts/after_step.md
  • .aicontext/prompts/aic-help.md
  • .aicontext/prompts/aic-skills.md
  • .aicontext/prompts/align-context.md
  • .aicontext/prompts/challenge.md
  • .aicontext/prompts/check-task.md
  • .aicontext/prompts/close-step.md
  • .aicontext/prompts/commit.md
  • .aicontext/prompts/create-task.md
  • .aicontext/prompts/deep-review-criteria.md
  • .aicontext/prompts/deep-review.md
  • .aicontext/prompts/do-it.md
  • .aicontext/prompts/draft-issue.md
  • .aicontext/prompts/draft-pr.md
  • .aicontext/prompts/finish-task.md
  • .aicontext/prompts/generate.md
  • .aicontext/prompts/gh-review-check.md
  • .aicontext/prompts/gh-review-fix-loop.md
  • .aicontext/prompts/identify-task.md
  • .aicontext/prompts/next-step.md
  • .aicontext/prompts/plan-tasks.md
  • .aicontext/prompts/prepare-release.md
  • .aicontext/prompts/review-criteria.md
  • .aicontext/prompts/review-plan.md
  • .aicontext/prompts/review-scope.md
  • .aicontext/prompts/review.md
  • .aicontext/prompts/run-step.md
  • .aicontext/prompts/run-steps.md
  • .aicontext/prompts/start-feature.md
  • .aicontext/prompts/start.md
  • .aicontext/prompts/step-loop.md
  • .aicontext/prompts/task.md
  • .aicontext/prompts/test-writer.md
  • .aicontext/prompts/web-inspect.md
  • .aicontext/readme.md
  • .aicontext/rules/process.md
  • .aicontext/rules/standards.md
  • .aicontext/scripts/pr-reviews.js
  • .aicontext/specs/.gitkeep
  • .aicontext/specs/spec-1.6.0-professional-dev-flow.md
  • .aicontext/templates/brief.template.md
  • .aicontext/templates/code-review.template.md
  • .aicontext/templates/project.template.md
  • .aicontext/templates/release.template.md
  • .aicontext/templates/spec.template.md
  • .aicontext/templates/task.template.md
  • .aicontext/templates/worklog.template.md
  • .claude/CLAUDE.md
  • .claude/agents/reviewer.md
  • .claude/agents/standards-checker.md
  • .claude/agents/test-writer.md
  • .claude/scripts/pr-resolve.js
  • .claude/scripts/pr-reviews.js
  • .claude/skills/add-step/SKILL.md
  • .claude/skills/aic-help/SKILL.md
  • .claude/skills/aic-skills/SKILL.md
  • .claude/skills/align-context/SKILL.md
  • .claude/skills/branch-review/SKILL.md
  • .claude/skills/challenge/SKILL.md
  • .claude/skills/check-plan/SKILL.md
  • .claude/skills/check-task/SKILL.md
  • .claude/skills/code-health/SKILL.md
  • .claude/skills/commit/SKILL.md
  • .claude/skills/create-task/SKILL.md
  • .claude/skills/deep-review/SKILL.md
  • .claude/skills/diff-review/SKILL.md
  • .claude/skills/do-it/SKILL.md
  • .claude/skills/draft-issue/SKILL.md
  • .claude/skills/draft-pr/SKILL.md
  • .claude/skills/finish-task/SKILL.md
  • .claude/skills/gh-review-check/SKILL.md
  • .claude/skills/gh-review-fix-loop/SKILL.md
  • .claude/skills/next-step/SKILL.md
  • .claude/skills/plan-tasks/SKILL.md
  • .claude/skills/prepare-release/SKILL.md
  • .claude/skills/review-plan/SKILL.md
  • .claude/skills/review/SKILL.md
  • .claude/skills/run-step/SKILL.md
  • .claude/skills/run-steps/SKILL.md
  • .claude/skills/standards-check/SKILL.md
  • .claude/skills/start-feature/SKILL.md
  • .claude/skills/start/SKILL.md
  • .claude/skills/web-inspect/SKILL.md
  • .codex/skills/add-step/SKILL.md
  • .codex/skills/aic-help/SKILL.md
  • .codex/skills/aic-skills/SKILL.md
  • .codex/skills/align-context/SKILL.md
  • .codex/skills/branch-review/SKILL.md
  • .codex/skills/challenge/SKILL.md
  • .codex/skills/check-plan/SKILL.md
  • .codex/skills/check-task/SKILL.md
  • .codex/skills/code-health/SKILL.md
  • .codex/skills/commit/SKILL.md
  • .codex/skills/create-task/SKILL.md
  • .codex/skills/deep-review/SKILL.md
  • .codex/skills/diff-review/SKILL.md
  • .codex/skills/do-it/SKILL.md
  • .codex/skills/draft-issue/SKILL.md
  • .codex/skills/draft-pr/SKILL.md
  • .codex/skills/finish-task/SKILL.md
  • .codex/skills/gh-review-check/SKILL.md
  • .codex/skills/gh-review-fix-loop/SKILL.md
  • .codex/skills/next-step/SKILL.md
  • .codex/skills/plan-tasks/SKILL.md
  • .codex/skills/pr-review-check/SKILL.md
  • .codex/skills/prepare-release/SKILL.md
  • .codex/skills/review-plan/SKILL.md
  • .codex/skills/review/SKILL.md
  • .codex/skills/run-step/SKILL.md
  • .codex/skills/run-steps/SKILL.md
  • .codex/skills/standards-check/SKILL.md
  • .codex/skills/start-feature/SKILL.md
  • .codex/skills/start/SKILL.md
  • .codex/skills/web-inspect/SKILL.md
  • .cursor/rules/aicontext.mdc
  • .github/copilot-instructions.md
  • .gitignore
  • CHANGELOG.md
  • README.md
  • bin/aicontext.js
  • docs/development-model.md
  • docs/skills.md
  • docs/workflow.md
  • test/cli.test.js
  • test/pr-resolve.test.js
  • test/pr-reviews.test.js
💤 Files with no reviewable changes (17)
  • .aicontext/prompts/after_step.md
  • .aicontext/prompts/gh-review-check.md
  • .aicontext/prompts/task.md
  • .claude/skills/check-plan/SKILL.md
  • .claude/skills/diff-review/SKILL.md
  • .claude/skills/standards-check/SKILL.md
  • .codex/skills/check-plan/SKILL.md
  • .codex/skills/branch-review/SKILL.md
  • .claude/skills/branch-review/SKILL.md
  • .claude/agents/standards-checker.md
  • .codex/skills/standards-check/SKILL.md
  • .codex/skills/diff-review/SKILL.md
  • .claude/skills/code-health/SKILL.md
  • .codex/skills/pr-review-check/SKILL.md
  • .codex/skills/code-health/SKILL.md
  • .claude/scripts/pr-reviews.js
  • .claude/scripts/pr-resolve.js

Comment thread .aicontext/prompts/align-context.md Outdated
Comment thread .aicontext/prompts/check-task.md Outdated
Comment thread .aicontext/prompts/close-step.md
Comment thread .aicontext/prompts/commit.md
Comment thread .aicontext/prompts/create-task.md
Comment thread .claude/skills/finish-task/SKILL.md Outdated
Comment thread .codex/skills/create-task/SKILL.md
Comment thread CHANGELOG.md Outdated
Comment thread docs/workflow.md
Comment thread docs/workflow.md Outdated
Fix: finish-task SKILL.md "changelog" → "worklog", CHANGELOG "11-phase"
→ "12-phase", removed deprecated /standards-check section from workflow.md,
added web-inspect to FRAMEWORK_SKILLS.

Co-Authored-By: Claude via AIContext
@zahardev

zahardev commented Apr 3, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Apr 3, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

pr-resolve.js supports posting replies before resolving threads, but
neither gh-review-check nor gh-review-fix-loop instructed the agent to
fill the Reply column. Threads were being resolved without explanation.

Co-Authored-By: Claude via AIContext

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Caution

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

⚠️ Outside diff range comments (1)
bin/aicontext.js (1)

554-565: ⚠️ Potential issue | 🟠 Major

Create .aicontext/specs/ during upgrades.

init() now bootstraps .aicontext/specs/.gitkeep, but update() never creates that tree. Projects upgrading from pre-1.6.0 will miss the new specs layer, so the new spec-driven flows only work after a manual fix.

➕ Proposed fix
   log('Updating data directory...', 'dim');
   copyRecursive(path.join(packageRoot, '.aicontext', 'data', '.gitignore'), path.join(target, '.aicontext', 'data', '.gitignore'));
+  copyRecursive(
+    path.join(packageRoot, '.aicontext', 'specs', '.gitkeep'),
+    path.join(target, '.aicontext', 'specs', '.gitkeep')
+  );
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@bin/aicontext.js` around lines 554 - 565, The update flow currently copies
prompts, templates and data but never creates the new specs tree, so modify the
upgrade sequence in the update() routine in bin/aicontext.js to ensure
.aicontext/specs exists by creating the directory and adding the .gitkeep file
(similar to init()). Call copyRecursive or use fs.mkdirSync/ensureDir to create
path.join(target, '.aicontext', 'specs') and then copy or write the .gitkeep
from packageRoot (path.join(packageRoot, '.aicontext', 'specs', '.gitkeep'))
into path.join(target, '.aicontext', 'specs', '.gitkeep') so projects upgrading
from pre-1.6.0 get the specs layer automatically.
🧹 Nitpick comments (1)
test/cli.test.js (1)

802-812: Cover the new .codex/skills cleanup branch.

removeDeprecatedSkills() now walks both skill roots, but this fixture only proves the .claude path. A regression in the new Codex branch would still pass.

🧪 Suggested test expansion
   fs.mkdirSync(path.join(tempDir, '.claude', 'skills', 'task'), { recursive: true });
   fs.writeFileSync(path.join(tempDir, '.claude', 'skills', 'task', 'SKILL.md'), 'content');
   fs.mkdirSync(path.join(tempDir, '.claude', 'skills', 'diff-review'), { recursive: true });
   fs.writeFileSync(path.join(tempDir, '.claude', 'skills', 'diff-review', 'SKILL.md'), 'content');
+  fs.mkdirSync(path.join(tempDir, '.codex', 'skills', 'task'), { recursive: true });
+  fs.writeFileSync(path.join(tempDir, '.codex', 'skills', 'task', 'SKILL.md'), 'content');

   removeDeprecatedSkills(tempDir);

   assert.strictEqual(fs.existsSync(path.join(tempDir, '.claude', 'skills', 'task')), false);
   assert.strictEqual(fs.existsSync(path.join(tempDir, '.claude', 'skills', 'diff-review')), false);
+  assert.strictEqual(fs.existsSync(path.join(tempDir, '.codex', 'skills', 'task')), false);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@test/cli.test.js` around lines 802 - 812, The test only validates removal
under the `.claude/skills` root but removeDeprecatedSkills() also traverses
`.codex/skills`, so add the same fixture setup and assertions for the `.codex`
path; create directories and SKILL.md under path.join(tempDir, '.codex',
'skills', 'task') and path.join(tempDir, '.codex', 'skills', 'diff-review')
before calling removeDeprecatedSkills(tempDir) and assert those `.codex`
directories no longer exist afterwards to cover the new branch.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.aicontext/prompts/gh-review-fix-loop.md:
- Around line 66-72: The main() function in pr-reviews.js doesn't handle the
--count flag so the script always writes a markdown file instead of returning a
plain integer count; update main() to parse process.argv (e.g., const args =
process.argv.slice(2); const countOnly = args.includes('--count')), then after
calling checkGhCli(), getPrInfo(), fetchThreads(), and buildEntries() check
countOnly: if true, console.log(entries.length) and return; otherwise proceed to
call nextIteration(), renderMarkdown(), create OUTPUT_DIR, write the file, and
log the saved message as before.
- Around line 52-54: The "3. Resolve" step incorrectly invokes pr-resolve.js
with a --comment-id flag; pr-resolve.js expects a single filepath to a markdown
review file. Replace the call that runs "node .aicontext/scripts/pr-resolve.js
--comment-id {id}" with a call that passes the review file path (e.g., "node
pr-resolve.js <path-to-review-file>") so the script can parse the markdown table
and resolve all entries marked "resolve" while using the Reply column to post
explanations; update the text to describe that the script processes the entire
review file rather than individual comment IDs.

In `@bin/aicontext.js`:
- Around line 566-574: The current logic overwrites the entire changelog.md when
adding the deprecation note, destroying user content; instead read the existing
content from oldChangelogPath (variable oldChangelogPath), and if it does not
include '@deprecated' prepend the deprecation banner to the existing content
(e.g., newContent = banner + '\n\n' + content) and write that back with
fs.writeFileSync; keep the existing log call (log('  Deprecated changelog.md
(replaced by worklog.md)', 'dim')) and only modify the write behavior in the
block that checks content.includes('@deprecated').

---

Outside diff comments:
In `@bin/aicontext.js`:
- Around line 554-565: The update flow currently copies prompts, templates and
data but never creates the new specs tree, so modify the upgrade sequence in the
update() routine in bin/aicontext.js to ensure .aicontext/specs exists by
creating the directory and adding the .gitkeep file (similar to init()). Call
copyRecursive or use fs.mkdirSync/ensureDir to create path.join(target,
'.aicontext', 'specs') and then copy or write the .gitkeep from packageRoot
(path.join(packageRoot, '.aicontext', 'specs', '.gitkeep')) into
path.join(target, '.aicontext', 'specs', '.gitkeep') so projects upgrading from
pre-1.6.0 get the specs layer automatically.

---

Nitpick comments:
In `@test/cli.test.js`:
- Around line 802-812: The test only validates removal under the
`.claude/skills` root but removeDeprecatedSkills() also traverses
`.codex/skills`, so add the same fixture setup and assertions for the `.codex`
path; create directories and SKILL.md under path.join(tempDir, '.codex',
'skills', 'task') and path.join(tempDir, '.codex', 'skills', 'diff-review')
before calling removeDeprecatedSkills(tempDir) and assert those `.codex`
directories no longer exist afterwards to cover the new branch.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f3bf4d5c-aeff-4234-8c08-761125826ac9

📥 Commits

Reviewing files that changed from the base of the PR and between 86be7c2 and a43d8ef.

📒 Files selected for processing (7)
  • .aicontext/prompts/gh-review-check.md
  • .aicontext/prompts/gh-review-fix-loop.md
  • .claude/skills/finish-task/SKILL.md
  • CHANGELOG.md
  • bin/aicontext.js
  • docs/workflow.md
  • test/cli.test.js
✅ Files skipped from review due to trivial changes (2)
  • .claude/skills/finish-task/SKILL.md
  • docs/workflow.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • CHANGELOG.md

Comment thread .aicontext/prompts/gh-review-fix-loop.md
Comment thread .aicontext/prompts/gh-review-fix-loop.md Outdated
Comment thread bin/aicontext.js
zahardev added 2 commits April 3, 2026 21:25
SKIP_PATHS was hardcoded with .aicontext/ which filtered out review
comments on framework files. Now reads from optional
pr-reviews-config.json next to the script, falling back to defaults.
Config file is gitignored — project-specific.

Co-Authored-By: Claude via AIContext
- Add .aicontext/ prefix to brief paths in 5 prompts
- Fix commit prompt: stage before reviewing diff
- Fix prepare-release section numbering (3→5 skip)
- Update stale references in readme.md (deprecated review commands, agents)
- Remove standards-checker from spec agent list
- Fix pr-resolve.js invocation: filepath, not --comment-id
- Add --count flag to pr-reviews.js for polling
- Preserve existing content when deprecating changelog.md

Co-Authored-By: Claude via AIContext

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (2)
.aicontext/readme.md (1)

85-85: ⚠️ Potential issue | 🟡 Minor

Deprecated review command names still appear in the data directory section.

Line 83 still says results come from /diff-review and /branch-review, which conflicts with the unified /review workflow documented elsewhere.

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

In @.aicontext/readme.md at line 85, Update the data directory section to remove
the deprecated command names by replacing any references to "/diff-review" and
"/branch-review" with the unified "/review" workflow and ensure the table row
describing github-pr-reviews references the correct current skill endpoint
(e.g., "/gh-review-check" or the standardized "/review") so all entries match
the documented unified workflow; locate mentions in .aicontext/readme.md (the
data directory section around the table and the line that currently references
"/diff-review" and "/branch-review") and update the text to consistently use
"/review" and correct the example directory name if needed.
.aicontext/specs/spec-1.6.0-professional-dev-flow.md (1)

48-48: ⚠️ Potential issue | 🟡 Minor

Remove deprecated standards-checker from agent list.

Line 48 lists standards-checker as a universal-instruction agent, but per PR changes this agent was moved to DEPRECATED_AGENTS. Per the spec's own line 226, "standards-check dropped — fully subsumed by /deep-review."

📝 Proposed fix
-- Claude Code agents with universal instructions (`reviewer`, `standards-checker`, `test-writer`) reference prompts. Tool-specific agents (`test-runner`, `researcher`) keep instructions inline.
+- Claude Code agents with universal instructions (`reviewer`, `test-writer`) reference prompts. Tool-specific agents (`test-runner`, `researcher`) keep instructions inline.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.aicontext/specs/spec-1.6.0-professional-dev-flow.md at line 48, Update the
agent list to remove the deprecated agent name "standards-checker" from the
universal-instruction Claude Code agents line (the sentence that currently reads
about universal instructions `reviewer`, `test-writer`), since
"standards-checker" was moved to DEPRECATED_AGENTS; locate the string
"standards-checker" in that sentence and delete it, and optionally add a
parenthetical note referencing that standards-check functionality is subsumed by
"/deep-review" (as noted near the DEPRECATED_AGENTS section) to keep the spec
consistent.
🧹 Nitpick comments (3)
.aicontext/prompts/gh-review-fix-loop.md (1)

74-78: Clarify commit behavior when no fixes were applied.

Step 7 states "Commit all fixes" but doesn't specify behavior when step 4 (Fix) had nothing to implement (e.g., all comments were triaged as Resolve or Skip). If no code changes were made, should the commit step be skipped?

Consider adding:

"Commit all fixes. If no code changes were made (nothing to fix), skip the commit and proceed to polling."

This prevents empty commits and clarifies the loop exit condition when all review comments are non-actionable.

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

In @.aicontext/prompts/gh-review-fix-loop.md around lines 74 - 78, Update the
"### 7. Commit and Push" step to clarify behavior when there are no code
changes: change the sentence "Commit all fixes." to "Commit all fixes. If no
code changes were made (nothing to fix), skip the commit and proceed to
polling." Ensure this change is applied in the "7. Commit and Push" section so
the loop clearly avoids creating empty commits when all review comments were
triaged as Resolve or Skip.
.aicontext/prompts/run-steps.md (2)

46-55: Consider referencing the table instead of duplicating it.

The severity × effort table appears in multiple prompts (run-steps.md, gh-review-fix-loop.md) and in process.md. While inline duplication improves prompt readability, it creates a maintenance burden: changes require updates in 3+ places.

Since line 44 already instructs reading process.md before starting, consider replacing lines 46-55 with:

"Use the severity × effort table from process.md (already read in step 3)."

This keeps the single source of truth while maintaining the workflow reference.

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

In @.aicontext/prompts/run-steps.md around lines 46 - 55, Replace the duplicated
severity × effort table in run-steps.md with a single-line reference to the
canonical table in process.md: remove the table block (the rows under "When
findings are returned, assess each with this table:") and replace it with a
sentence like "Use the severity × effort table from process.md (already read in
step 3)." Ensure the wording matches the existing step 3 mention so readers know
where to find the authoritative table and eliminate duplication.

31-34: Clarify commit_mode persistence when user defers commits to /finish-task.

When the user chooses option 2 ("no — I'll handle commits later"), the code at line 36 only saves if the user chooses per-step. This leaves commit_mode unset if the user defers, causing /run-steps to re-prompt every subsequent run.

Per the spec, commit_mode has three distinct values (manual, per-step, per-task), and /run-steps only commits during execution if commit_mode is per-step. All other modes defer to /finish-task, which uses finish_action as the commit decision point. To properly implement this design:

  1. Save a default commit_mode (e.g., manual) when the user chooses "no"
  2. Or prompt the user to choose between the other modes (per-task vs manual) and persist that choice
  3. Or explicitly document that "no" means the user will be asked again next time
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.aicontext/prompts/run-steps.md around lines 31 - 34, The prompt handling in
/run-steps leaves commit_mode unset when the user selects "no", causing repeated
re-prompts; update the logic that handles the prompt (the branch that currently
saves commit_mode only for "per-step") to persist an explicit commit_mode for
the "no" choice (e.g., set commit_mode = "manual"), or instead prompt the user
to choose between "per-task" and "manual" and persist that choice; ensure
/run-steps checks commit_mode === "per-step" to auto-commit and that
/finish-task uses finish_action as the commit decision point.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.aicontext/prompts/gh-review-fix-loop.md:
- Line 16: Update the incorrect brief path string in the gh-review-fix-loop.md
prompt: replace the occurrence of "data/brief/brief-{task-filename}" with the
canonical ".aicontext/data/brief/brief-{task-filename}" so it matches
run-steps.md and the rest of the codebase; locate the literal text in
.aicontext/prompts/gh-review-fix-loop.md and perform a direct string
substitution to keep the documentation consistent.

In @.aicontext/readme.md:
- Line 106: The README references the same prompt under two different filenames
(review-plan.md vs plan.md); choose one canonical filename (e.g.,
review-plan.md) and update both occurrences in the README so the "review-plan"
prompt key and the instruction line both point to that single filename; also
verify the chosen markdown file (review-plan.md or plan.md) exists in the
prompts directory and update the mapping entry for the "review-plan" key to
match the chosen filename.

In @.aicontext/specs/spec-1.6.0-professional-dev-flow.md:
- Line 111: The spec incorrectly lists `commit+push+pr` as a valid
finish_action; update the line to match the implemented options by replacing the
enum in the spec so it reads: `finish_action` options: `nothing` | `commit` |
`commit+push`, and ensure the documentation aligns with the `finish-task.md`
prompt which only supports `nothing`, `commit`, and `commit+push`.

---

Duplicate comments:
In @.aicontext/readme.md:
- Line 85: Update the data directory section to remove the deprecated command
names by replacing any references to "/diff-review" and "/branch-review" with
the unified "/review" workflow and ensure the table row describing
github-pr-reviews references the correct current skill endpoint (e.g.,
"/gh-review-check" or the standardized "/review") so all entries match the
documented unified workflow; locate mentions in .aicontext/readme.md (the data
directory section around the table and the line that currently references
"/diff-review" and "/branch-review") and update the text to consistently use
"/review" and correct the example directory name if needed.

In @.aicontext/specs/spec-1.6.0-professional-dev-flow.md:
- Line 48: Update the agent list to remove the deprecated agent name
"standards-checker" from the universal-instruction Claude Code agents line (the
sentence that currently reads about universal instructions `reviewer`,
`test-writer`), since "standards-checker" was moved to DEPRECATED_AGENTS; locate
the string "standards-checker" in that sentence and delete it, and optionally
add a parenthetical note referencing that standards-check functionality is
subsumed by "/deep-review" (as noted near the DEPRECATED_AGENTS section) to keep
the spec consistent.

---

Nitpick comments:
In @.aicontext/prompts/gh-review-fix-loop.md:
- Around line 74-78: Update the "### 7. Commit and Push" step to clarify
behavior when there are no code changes: change the sentence "Commit all fixes."
to "Commit all fixes. If no code changes were made (nothing to fix), skip the
commit and proceed to polling." Ensure this change is applied in the "7. Commit
and Push" section so the loop clearly avoids creating empty commits when all
review comments were triaged as Resolve or Skip.

In @.aicontext/prompts/run-steps.md:
- Around line 46-55: Replace the duplicated severity × effort table in
run-steps.md with a single-line reference to the canonical table in process.md:
remove the table block (the rows under "When findings are returned, assess each
with this table:") and replace it with a sentence like "Use the severity ×
effort table from process.md (already read in step 3)." Ensure the wording
matches the existing step 3 mention so readers know where to find the
authoritative table and eliminate duplication.
- Around line 31-34: The prompt handling in /run-steps leaves commit_mode unset
when the user selects "no", causing repeated re-prompts; update the logic that
handles the prompt (the branch that currently saves commit_mode only for
"per-step") to persist an explicit commit_mode for the "no" choice (e.g., set
commit_mode = "manual"), or instead prompt the user to choose between "per-task"
and "manual" and persist that choice; ensure /run-steps checks commit_mode ===
"per-step" to auto-commit and that /finish-task uses finish_action as the commit
decision point.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c20454a7-fa8c-4f83-a315-d5fd49caf225

📥 Commits

Reviewing files that changed from the base of the PR and between 1ed9db2 and 793f6ea.

📒 Files selected for processing (12)
  • .aicontext/prompts/align-context.md
  • .aicontext/prompts/check-task.md
  • .aicontext/prompts/commit.md
  • .aicontext/prompts/finish-task.md
  • .aicontext/prompts/gh-review-fix-loop.md
  • .aicontext/prompts/prepare-release.md
  • .aicontext/prompts/run-step.md
  • .aicontext/prompts/run-steps.md
  • .aicontext/readme.md
  • .aicontext/scripts/pr-reviews.js
  • .aicontext/specs/spec-1.6.0-professional-dev-flow.md
  • bin/aicontext.js
✅ Files skipped from review due to trivial changes (6)
  • .aicontext/prompts/run-step.md
  • .aicontext/prompts/commit.md
  • .aicontext/prompts/check-task.md
  • .aicontext/prompts/align-context.md
  • .aicontext/prompts/prepare-release.md
  • .aicontext/prompts/finish-task.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .aicontext/scripts/pr-reviews.js

Comment thread .aicontext/prompts/gh-review-fix-loop.md Outdated
Comment thread .aicontext/readme.md
Comment thread .aicontext/specs/spec-1.6.0-professional-dev-flow.md Outdated
- Add .aicontext/ prefix to brief path in gh-review-fix-loop prompt
- Fix review-plan prompt path in readme.md (plan.md → review-plan.md)
- Remove unsupported commit+push+pr from spec finish_action options

Co-Authored-By: Claude via AIContext
@zahardev

zahardev commented Apr 3, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Apr 3, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (1)
.aicontext/prompts/gh-review-fix-loop.md (1)

24-28: Make the review file path explicit across Step 1 → Step 3.

Line 53 currently relies on a placeholder path. In repeated cycles, this can accidentally resolve against an older file.

Proposed prompt tweak
 ### 1. Fetch Review Comments

node .aicontext/scripts/pr-reviews.js

+Capture the saved filepath from output as `review_file`.

...
### 3. Resolve

Resolve all comments marked Resolve — the script processes the review file and posts Reply column text before resolving each thread:

-node .aicontext/scripts/pr-resolve.js
+node .aicontext/scripts/pr-resolve.js {review_file}

Also applies to: 51-54

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

In @.aicontext/prompts/gh-review-fix-loop.md around lines 24 - 28, Update the
prompt so the output of node .aicontext/scripts/pr-reviews.js is captured into
an explicit variable (e.g., review_file) and that variable is passed to node
.aicontext/scripts/pr-resolve.js instead of relying on a placeholder path;
specifically, modify the steps that invoke the pr-reviews.js and pr-resolve.js
scripts to capture and reuse the saved filepath (review_file) so Step 3 calls
pr-resolve.js {review_file}, ensuring you reference the review_file variable
consistently across the flow that mentions pr-reviews.js and pr-resolve.js.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.aicontext/prompts/run-steps.md:
- Around line 31-35: The prompt text uses a non-canonical commit mode value "no"
which can create ambiguous saved state; update the wording to use the defined
commit_mode vocabulary instead (replace "no" with the canonical mode name used
by your config such as "none" or "deferred"), and ensure the examples and
explanatory line reference commit_mode and the existing "per-step" option (e.g.,
describe the alternative as the canonical "none"/"deferred" mode) so the UI and
persisted state use only supported mode tokens.
- Line 24: Replace the ambiguous bare filenames with the canonical .aicontext
paths: update the check order text that currently references "local.md" and
"project.md" (and the "## Commit Rules:" header) so it explicitly checks
".aicontext/local.md" then ".aicontext/project.md" (matching the "## Commit
Rules:" anchor) and clarifies that the first matching source wins; ensure the
string in run-steps.md is updated accordingly wherever "local.md" or
"project.md" are mentioned.

In @.aicontext/scripts/pr-reviews.js:
- Around line 14-16: SKIP_PATHS initialization is brittle: wrap the JSON.parse
of CONFIG_PATH in a try/catch and validate/coerce the parsed skip_paths value
before assigning to SKIP_PATHS (use DEFAULT_SKIP_PATHS on parse error,
non-object, or when parsed.skip_paths is not an array); ensure the code that
later does skip.some(...) receives a safe array of strings (e.g., map non-string
entries to strings or filter them out) so malformed pr-reviews-config.json or
incorrect skip_paths types won't throw at runtime; update the SKIP_PATHS const
initialization and any other places that read parsed.skip_paths (the code that
uses SKIP_PATHS and the variable used with .some) to use the validated/coerced
array.

In @.aicontext/specs/spec-1.6.0-professional-dev-flow.md:
- Line 101: Update the stale default quality-check sentence in the spec to match
the current timing table: replace the phrase "standards check after task" with
"deep review after task" (or "deep review + full test suite after task" if you
want to be explicit) so the sentence reads consistently with the table; locate
the sentence in the document containing "Default configuration: code review
after step, step-related tests after step, standards check after task, full test
suite after task" and edit it to reference "deep review" (and keep "full test
suite after task") to ensure both places align.

---

Nitpick comments:
In @.aicontext/prompts/gh-review-fix-loop.md:
- Around line 24-28: Update the prompt so the output of node
.aicontext/scripts/pr-reviews.js is captured into an explicit variable (e.g.,
review_file) and that variable is passed to node
.aicontext/scripts/pr-resolve.js instead of relying on a placeholder path;
specifically, modify the steps that invoke the pr-reviews.js and pr-resolve.js
scripts to capture and reuse the saved filepath (review_file) so Step 3 calls
pr-resolve.js {review_file}, ensuring you reference the review_file variable
consistently across the flow that mentions pr-reviews.js and pr-resolve.js.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 81c6b8a6-37ba-41a6-8286-cbd2c3c07fe0

📥 Commits

Reviewing files that changed from the base of the PR and between 1ed9db2 and 6165d04.

📒 Files selected for processing (12)
  • .aicontext/prompts/align-context.md
  • .aicontext/prompts/check-task.md
  • .aicontext/prompts/commit.md
  • .aicontext/prompts/finish-task.md
  • .aicontext/prompts/gh-review-fix-loop.md
  • .aicontext/prompts/prepare-release.md
  • .aicontext/prompts/run-step.md
  • .aicontext/prompts/run-steps.md
  • .aicontext/readme.md
  • .aicontext/scripts/pr-reviews.js
  • .aicontext/specs/spec-1.6.0-professional-dev-flow.md
  • bin/aicontext.js
✅ Files skipped from review due to trivial changes (4)
  • .aicontext/prompts/run-step.md
  • .aicontext/prompts/commit.md
  • .aicontext/prompts/check-task.md
  • .aicontext/prompts/finish-task.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • .aicontext/prompts/align-context.md
  • .aicontext/readme.md
  • bin/aicontext.js

Comment thread .aicontext/prompts/run-steps.md
Comment thread .aicontext/scripts/pr-reviews.js Outdated
Comment thread .aicontext/specs/spec-1.6.0-professional-dev-flow.md Outdated
zahardev added 2 commits April 4, 2026 12:35
…spec

- Use canonical "manual" instead of "no" in run-steps commit prompt
- Harden pr-reviews-config.json parsing with try/catch and Array.isArray
- Replace stale "standards check" with "deep review" in spec defaults

Co-Authored-By: Claude via AIContext
Old flow polled comment count every 60s after push, but CodeRabbit takes
2-3min so the count was 0 (old threads resolved, new ones not yet posted).
New flow: capture baseline count, push, wait for all checks via
`gh pr checks --watch` (with 30m timeout, ignoring exit code), then
compare counts. Also strengthened identify-task.md to explicitly override
conversation context when IDE signal is present.

Co-Authored-By: Claude via AIContext
@zahardev

zahardev commented Apr 4, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Apr 4, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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 @.aicontext/prompts/gh-review-fix-loop.md:
- Around line 95-96: The loop exit check that currently compares only
baseline_count is unsafe because resolved and new threads can net to the same
count; update the logic that decides whether to increment cycle or break so it
compares thread identities or latest review timestamps instead of just
baseline_count: capture a set/list of thread IDs (or the latest review
timestamp) before the wait, then after polling compare the sets/timestamps in
the same place where baseline_count is used to decide (the branch that
increments cycle or exits), and treat any new thread ID or newer timestamp as
"new review" to continue the loop and only exit when neither IDs nor timestamps
have changed.

In @.aicontext/prompts/run-steps.md:
- Around line 31-35: The prompt in run-steps.md that asks users when commit_mode
is unset only presents "per-step" and "manual", omitting the canonical
"per-task" option; update the wording where commit_mode choices are defined to
include a third explicit option "per-task — commit after the whole task
completes (canonical template mode)" so users can select it; ensure any
references to commit_mode handling in your templates and documentation align
with the added "per-task" label and that downstream code expecting "per-task"
(e.g., template logic that reads commit_mode) will recognize this exact string.

In @.aicontext/specs/spec-1.6.0-professional-dev-flow.md:
- Around line 155-156: Update the spec text for the gh-review-fix-loop to
reflect the implemented waiting strategy: replace the description that it "polls
every 60 seconds for comment count change" with the current behavior of waiting
on GitHub PR checks using "gh pr checks --watch" with a 30 minute timeout, and
remove or replace any assertions about comment-count polling; apply the same
edit to the later occurrence of the same text (the section referenced as lines
near 317) so both sections consistently describe waiting on PR checks with a 30m
timeout rather than 60s comment-count polling.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 499866f2-d12b-45fd-8750-d6f2d58e26a7

📥 Commits

Reviewing files that changed from the base of the PR and between 6165d04 and 163dc9f.

📒 Files selected for processing (5)
  • .aicontext/prompts/gh-review-fix-loop.md
  • .aicontext/prompts/identify-task.md
  • .aicontext/prompts/run-steps.md
  • .aicontext/scripts/pr-reviews.js
  • .aicontext/specs/spec-1.6.0-professional-dev-flow.md
✅ Files skipped from review due to trivial changes (1)
  • .aicontext/prompts/identify-task.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .aicontext/scripts/pr-reviews.js

Comment thread .aicontext/prompts/gh-review-fix-loop.md Outdated
Comment thread .aicontext/prompts/run-steps.md
Comment thread .aicontext/specs/spec-1.6.0-professional-dev-flow.md Outdated
zahardev added 5 commits April 4, 2026 12:55
After checks complete, check for a "review paused" comment from
CodeRabbit. If found, warn the user and stop the loop — no point
cycling without active reviews.

Co-Authored-By: Claude via AIContext
When all threads are resolved but CodeRabbit's review state is still
CHANGES_REQUESTED, warn the user to trigger a fresh approval with
@coderabbitai review.

Co-Authored-By: Claude via AIContext
Check all reviewers for lingering CHANGES_REQUESTED state, not just
CodeRabbit. Any stale changes-requested review is worth flagging when
all threads are resolved.

Co-Authored-By: Claude via AIContext
Push to remote is now forbidden without user confirmation, unless
pre-authorized by finish_action: commit+push or an active
/gh-review-fix-loop cycle.

Co-Authored-By: Claude via AIContext
Count-based comparison had an edge case where resolved + new threads
could net to the same count. Now does a full fetch after checks
complete — if unresolved threads exist, continue; if none, exit.
Removed baseline capture step. Updated spec to match.

Co-Authored-By: Claude via AIContext

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

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

Inline comments:
In @.aicontext/specs/spec-1.6.0-professional-dev-flow.md:
- Around line 148-150: The spec claims pr-reviews.js supports a configurable
"different output location" but the implementation hardcodes OUTPUT_DIR; update
pr-reviews.js to read an override from the existing config file (same place
skip_paths is read) or from an env var and fall back to the current default
('.aicontext/data/github-pr-reviews'); specifically, replace the hardcoded
OUTPUT_DIR constant in pr-reviews.js with logic that loads a value like
config.output_dir (or process.env.PR_REVIEWS_OUTPUT_DIR) and use that path
everywhere OUTPUT_DIR is referenced, validating/creating the directory as
needed; alternatively, if you prefer removing the feature, update the spec/docs
instead of code (but implement the config option in pr-reviews.js if you want to
preserve claimed behavior).
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 962759bf-f919-4ce8-a89d-ac7aeed14422

📥 Commits

Reviewing files that changed from the base of the PR and between 6165d04 and 28e64ff.

📒 Files selected for processing (6)
  • .aicontext/prompts/gh-review-fix-loop.md
  • .aicontext/prompts/identify-task.md
  • .aicontext/prompts/run-steps.md
  • .aicontext/rules/standards.md
  • .aicontext/scripts/pr-reviews.js
  • .aicontext/specs/spec-1.6.0-professional-dev-flow.md
✅ Files skipped from review due to trivial changes (1)
  • .aicontext/prompts/identify-task.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • .aicontext/scripts/pr-reviews.js

Comment thread .aicontext/specs/spec-1.6.0-professional-dev-flow.md
coderabbitai[bot]
coderabbitai Bot previously approved these changes Apr 4, 2026
Co-Authored-By: Claude via AIContext
@zahardev zahardev merged commit 5d5492d into main Apr 4, 2026
2 checks passed
This was referenced Apr 10, 2026
@coderabbitai coderabbitai Bot mentioned this pull request May 3, 2026
5 tasks
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