All notable changes to the claude-plugins project will be documented in this file.
The format is based on Keep a Changelog.
- Migrated critic-gates configuration path from
.claude/settings/critic-gates.jsonto.closedloop-ai/settings/critic-gates.jsonacrossagent-decomposer,agent-prompt-validator,generation-validator, andagent-bootstrapcommand - Migrated schema validation path from
.claude/schemas/to.closedloop-ai/schemas/inagent-prompt-validator - Updated agent output path references from
.claude/runs/to.closedloop-ai/runs/inagent-prompt-generator - Updated bootstrap configuration documentation in
agent-bootstrap.mdto reference.closedloop-ai/state directory
- Multi-repo planning and exploration support via new
--add-dirflag inrun-loop.sh, exposingCLOSEDLOOP_ADD_DIRSandCLOSEDLOOP_REPO_MAPenv vars to downstream agents pre-exploreragent produces per-repo code maps (code-map-{name}.json) when secondary repos are suppliedplan-draft-writeragent emits multi-repo plans with a## Repositoriestable and@{repo}:pathtask prefixes- New
multi-repo.overlay.mdoverlay assembled ontoprompt.mdat runtime for cross-repository planning workflows repositoriesmap field added to the plan root schema inplan-schema.jsonfor multi-repo plan traceability, keyed by repo short-name withpathandisPrimarymetadata- Tier 0 explicit-directory discovery and dedup helpers in
discover-repos.sh, with structured JSON output - Enhancements to
cross-repo-coordinatorandcross-repo-prd-writeragents for multi-repo context - Tests for
discover-repos.shandsetup-closedloop.sh(test_discover_repos.py,test_setup_closedloop.py) plus new multi-repo cases intest_validate_plan.py
run-loop.shnow scans the full per-iteration stream for the<promise>completion marker instead of only inspecting the finaltype==resultrecord, preventing missed completion signals when the orchestrator emits the promise in an intermediate message followed by additional tool_use or wrap-up outputdiscover-repos.shnow filters add-dirs that are ancestors of the workdir and deduplicates repo entries to prevent duplicate discovery results- Fixed multi-repo execution ordering and prompt definition string assembly in overlay resolution
- Consolidated Tier 0
discover-repos.shtests into a single scenario-driven harness, replacing the prior fragmented per-case test files - Migrated workdir internal state directory from
.closedloop/to.closedloop-ai/across hooks, setup scripts, and loop state management - Established
CLOSEDLOOP_STATE_DIRconstant as single source of truth for state directory name across shell scripts - Added
Skilltoplan-evaluatoragent's allowed tools to enablecode:plan-validateskill execution
- Migrated all remaining
.claude/path references to.closedloop-ai/across hooks, scripts, agents, skills, and orchestrator prompt -- completes the directory migration started in v1.1.0 - Replaced
gawkFPAT-based TOON parser with portablecsv_split()function inpretooluse-hook.shandsubagent-start-hook.sh, removing the hard dependency on GNU awk - Refactored awk array usage from associative
patterns[n]["key"]to parallel flat arrays for POSIX awk compatibility - Updated
install-dependencies.shto verify anyawkinstead of requiringgawkwith FPAT support - Updated org learnings copy path in
run-loop.shto use.closedloop-ai/learnings/with workdir-adjacent state directory resolution
- Removed all legacy
.claude/.closedloop/session/workdir/env fallback paths fromloop-stop-hook.sh,pretooluse-hook.sh,session-end-hook.sh,subagent-start-hook.sh,subagent-stop-hook.sh, andsetup-closedloop.sh - Removed legacy
~/.claude/.learnings/org-patterns.toonfallback frompretooluse-hook.shandsubagent-start-hook.sh - Removed legacy cleanup logic from
session-end-hook.sh(PID cleanup, stale session removal, legacy directory deletion)
- Tests for legacy path ignorance in pretooluse and subagent-start hooks, setup-closedloop, and self-learning flag tests
- Tests for portable awk injection (
test_injects_when_only_plain_awk_is_available) in both hook test suites
- Migrated GitHub mode output file paths from
.claude/to.closedloop-ai/:code-review-findings.json,code-review-threads.json, andcode-review-summary.md - Updated
routesubcommand to read critic-gates from.closedloop-ai/settings/critic-gates.json - Simplified fast-path routing to
total_loc <= 200threshold only (was<= 150 LOC AND <= 5 files AND no domain critics); domain critics are now folded into the fast-path agent as an additional pass
- Structured reasoning protocol for Premise Reviewer:
AUTHOR'S CLAIM / COUNTER-EVIDENCE / ALTERNATIVE CHECK / CONCLUSIONvalidation gate before reporting premise findings - Reasoning certificate for Bug Hunter A:
PREMISE / TRACE / DIVERGENCE / GUARD CHECK / CONCLUSIONtrace-based bug confirmation gate with emission filtering - Domain critic pass injection in fast-path reviewer via
{DOMAIN_CRITIC_PASS}placeholder, enabling domain expert review within single-agent fast-path runs - Replaced shared prompt reasoning checklist with structured
PREMISE / EVIDENCE / GUARD CHECK / SEVERITY CHECKanalysis framework
- Migrated perf-substep state paths from
.closedloop/to.closedloop-ai/inrun-judgesskill telemetry instrumentation
- Migrated threshold override paths from
.claude/settings/threshold-overrides.jsonto.closedloop-ai/settings/threshold-overrides.jsoninrun-judgesskill (both run-specific and repo-level locations)
- Version bump to align with cross-plugin
.closedloop-ai/directory migration
- Established
CLOSEDLOOP_STATE_DIRconstant as single source of truth for state directory name inbootstrap-learnings.sh,compute_success_rates.py, andwrite_merged_patterns.py
- Migrated org learnings paths from
.claude/learnings/to.closedloop-ai/learnings/acrosspull-learnings,push-learnings, andbootstrap-learnings.sh - Migrated run path references from
.claude/runs/to.closedloop-ai/runs/inprocess-learningscommand - Simplified
preflight-check.shto verifyawkavailability instead of requiringgawkwith FPAT support
- Removed legacy
~/.claude/.learnings/org-patterns.toonfallback fromcompute_success_rates.pyandwrite_merged_patterns.py - Removed legacy session file lookup path from
evaluate_goal.py
- Test verifying CLI ignores legacy home TOON path in
test_compute_success_rates.py
- Enhanced
plan-agentwith verification-before-proposing requirements: mustReadevery function, type, and validator before writing tasks that modify them; must check receiving validators/schemas when tasks construct events or payloads plan-agentnow requires explicit task dependency declarations ("Depends on T-A.B"), null/empty/missing edge case specification for every new field, and accurate summary language (no overclaiming)- Added multi-repository plan guidelines to
plan-agent: absolute file paths for cross-repo references, per-repo file existence verification, repo labels on tasks, and cross-repo contract documentation - Added self-check gates to
plan-agent: modification targets verified, validators audited, edge cases specified, dependencies declared, summary accuracy confirmed -- with a concrete good-vs-bad task example
stream_formatter.pynow usesOptional[str]instead ofstr | Noneunion syntax, making it import-safe on Python 3.9 and preventing silent JSONL pipeline truncation on macOS systems using the default system Python
- Deleted
feedback-exploreragent and removed its integration fromplan-with-codexdebate loop -- plan-agent now receives feedback directly without pre-fetched context briefs - Removed
{stem}.contextsidecar file fromplan-with-codexdebate loop
- Updated default Codex model from
gpt-5.4togpt-5.3-codexinplan-with-codexcommand anddebate-loop.sh(completes model migration started in v1.5.5) - Reduced Codex reasoning effort from
xhightohighinrun_codex_review.sh
- Ghost loop detection in
run-loop.sh-- tracks consecutive empty iterations and aborts after 3 to prevent infinite loops with no output - Session/context limit detection from
is_errorflag in Claude JSONL result records, with immediate abort andcontext_limitrun log entry - Session/context limit detection from stderr pattern matching (
prompt is too long,context limit reached, etc.), with immediate abort on non-zero exit
- PR auto-detection in local mode: when the current branch has an open PR,
resolve-scopenow auto-detects it viagh pr viewand scopes the review to the PR diff instead ofmain...HEAD - Small-diff fast path: diffs with <=150 LOC and <=5 files now route to a single fast-path reviewer agent instead of spawning the full 5-agent fleet, reducing review time and token usage
- Fast-path reviewer performs three scoped passes (Bug Hunter, Bug Hunter B / Unified Auditor, Premise) in a single agent run
- Partition cap enforcement with unconditional force-merge fallback when budget-respecting merges cannot reduce partition count below the cap
- Deferred cache-status printing from Task 6 to Task 8 (standard flow) or Task 7 (hygiene-only exit) to allow fast-path routing to suppress cache output
extract-patches--partitions-fileis now optional; omitting it produces onlypatches_all.txt- Reviewer/model routing lines in local output and GitHub summary are now conditional on
fast_path - Footer omits
--cache-resulton fast-path runs (cache intentionally bypassed) - Renamed Step 4 to Step 4A (standard flow) and added Step 4B (fast-path flow); Step 5.5 now gated on
fast_path == false
- Severity gate for Codex debate rounds 5+ in
run_codex_review.sh-- only flags findings that would cause functionally wrong behavior (incorrect output, data loss, crashes, security holes); suppresses wording ambiguities, hypothetical misimplementations, and style suggestions
- Split Codex debate round handling into three tiers: round 1 (initial review), rounds 2-4 (standard re-review), rounds 5+ (severity-gated re-review with elevated approval bar)
- Codex responses with no verdict AND no findings now emit
CODEX_EMPTYinstead of defaulting toNEEDS_CHANGES, distinguishing truncated/empty responses from genuine review feedback
- Updated default Codex model from
gpt-5.4togpt-5.3-codexincodex-reviewskill parameter docs andrun_codex_review.shdefault - Migrated remaining
.claude/workpath references to.closedloop-ai/workin orchestrator prompt example andextract-plan-mdskill usage examples
- Removed self-learning write references from agent prompts:
implementation-subagent,plan-importer,plan-writer,plan-draft-writer,generic-discovery,cross-repo-coordinator,build-validator,verification-subagent,plan-validator,code-reviewer-- learning capture sections, Organization Learnings sections, andself-learning:learning-qualityskill references - Deleted learning prompt files:
plan-writer-learning.md,implementation-learning.md,discovery-learning.md
- Migrated work directory paths from
.claude/to.closedloop-ai/acrossrun-loop.sh(state file, progress log, directory creation),amend-plancommand (default workdir), andcancel-codecommand (loop state file path) - Enhanced
codex-reviewprompt with 6 new analysis criteria: canonical state preservation, task specificity, behavioral precision, order-of-operations, lifecycle symmetry, and test fidelity -- plus implementability-focused preamble instructions
- Rule 8 in
build-validatoragent: never usepkill,killall, or broad kill patterns — usetimeoutto bound hung commands and report stuck processes as failures instead of killing them
- Added
pkillandkillallto credential-theft blocklist inpretooluse-hook.sh— broad process killing is now globally denied to prevent worktree agents from killing processes outside their context
- Migrated
.claude/workpath reference to.closedloop-ai/workinprocess-chat-learnings.shusage documentation
- Removed judge integration from
run-loop.sh—run_judges_if_needed,has_code_changes,resolve_judges_agents_dir,ensure_agents_snapshot,store_agents_snapshot, andcheck_completionfunctions removed along with Step 11 judge invocation inpost_iteration_processing - Deleted
run_judges_test_helper.shandtest_run_loop_imported_plan.py(tests for removed judge functions)
- Refactored
run-loop.shworkdir references to use a singleeffective_workdirlocal variable instead of repeated${workdir:-$WORKDIR}expansions
- Agents snapshot pre-step in
run-judgesskill — creates$CLOSEDLOOP_WORKDIR/agents-snapshot/with all judge agent.mdfiles and amanifest.jsonbefore judge execution begins (skipped if snapshot already exists) - New
ensure_agents_snapshot.shscript inrun-judgesskill scripts
- Renamed plan evaluation output from
judges.jsontoplan-judges.jsonfor consistency withcode-judges.jsonandprd-judges.json - Updated
validate_judge_report.pydefault filename for plan category toplan-judges.json
--self-learningopt-in flag forrun-loop.sh-- self-learning is now disabled by defaultCLOSEDLOOP_SELF_LEARNINGconfig propagation viaconfig.envand state frontmatter- Self-learning guard in
subagent-start-hook.shto skip learning injection when disabled - Self-learning guard in
subagent-stop-hook.shto skip entire learning region when disabled - Self-learning guard in
pretooluse-hook.shto skip tool-specific pattern injection when disabled
post_iteration_processing()skips steps 2-10 when self-learning is off; step 1 (changed-files.json) and step 11 (judges) always runbootstrap_learnings()skips.learnings/directory creation when self-learning is offrun_background_pruning()skips pruning when self-learning is off- Resume restores
SELF_LEARNINGfrom state frontmatter and re-exports to hooks
- New
feedback-exploreragent (haiku) for pre-fetching codebase context referenced in reviewer feedback, reducing redundant exploration during plan revisions with delta caching across debate rounds - Deferral detection in
plan-with-codex-- scans plans for "Deferred", "Out of Scope", "Future Work" items and requires explicit user approval before excluding work from scope - Exclusions sidecar file (
{stem}.exclusions) inplan-with-codexto persist user-confirmed deferral decisions across debate rounds
plan-with-codexargument-hint updated to positional syntax instead of optional bracket notationplan-with-codexuses Write tool for state persistence instead of Bash printfplan-with-codexlaunchesfeedback-explorerbeforeplan-agentrevision rounds to pre-fetch contextplan-agentenforces "no silent deferrals" rule -- must not create deferred/out-of-scope sections without explicit user approvalplan-agentsupports pre-fetched context briefs fromfeedback-explorer, reads brief before revision to skip redundant exploration- Added
Writetool toplan-agenttools list
- Fixed
plan-with-codexto use fully qualified agent namecode:feedback-explorer
- New "Refactoring Existing Prompts" section in
context-engineeringskill covering pitfalls for stale cross-references, over-abstraction, lost preconditions, and silent behavior changes
plan-agentnow verifies Codex findings against the codebase before acting -- rejects findings that don't hold up with evidence, writes a revision summary for cross-round contextcodex-reviewskill accepts--revisions-fileparameter, injecting Claude's revision summary into Codex's prompt on rounds > 1 so rejected findings are not re-raised
- Fixed
plan-with-codexresume path triggering a redundant user review checkpoint when the user had already confirmed by choosing "resume with existing plan"
- New
plan-agentagent for creating and revising implementation plans via codebase exploration - New
plan-with-codexcommand for iterative plan refinement through Claude + Codex debate loops - New
codex-reviewskill to run Codex plan reviews and return structured verdict feedback - New
debate-loop.shscript providing standalone CLI for Claude + Codex debate orchestration - New
plan-review.shhook that triggers Codex review when Claude exits plan mode
- New
resolve-scopesubcommand incode_review_helpers.py-- deterministic scope resolution replacing inline shell logic for PR branch lookup, git fetch, base-ref overrides, and path filter preservation - New
fetch-intentsubcommand -- fetches PR description or commit messages as intent context for the Premise Reviewer - New
classify-intentsubcommand -- classifies diff intent (feature,fix,refactor,mixed) from PR metadata and file statuses for model routing - New
collect-findingssubcommand -- mergesagent_*.jsonfiles and hygiene findings into a singlefindings.json, replacing inline Python-in-Bash merge logic - New
verdictsubcommand -- computes deterministic PR verdict (approve,needs_attention,decline) from validated findings, replacing inline orchestrator logic - New
prep-assetssubcommand -- copiesshared_prompt.txtandbha_suffix.txtfrom plugin to CR_DIR in a single step, consolidating scatteredcpcommands - New
extract-patchessubcommand -- extracts per-partition and full-diff patches to disk with batched extraction for large diffs (>200 files) - New
bha_suffix.txtprompt file -- Bug Hunter A persona and focus areas extracted from inline heredoc instart.md - Intent-aware model routing: Premise Reviewer uses Opus for fix/refactor/mixed intents, Sonnet for feature intents; BHA uses Opus for implementation partitions, Sonnet for test-only partitions
- Mixed-partition splitting in
partitionsubcommand -- separates test files from implementation files when impl LOC exceeds threshold - Agent cap enforcement via
--max-bha-agentsparameter inpartition, computed fromrouteoutput - Trivial partition merging -- partitions below 20 LOC are absorbed into same-type normal partitions
- Cache status message (
status_kind,status_message) appended tocache_result.jsonbycache-check, replacing orchestrator-side message formatting --exclude-test-partitionsflag oncache-updateto skip caching files from Sonnet-reviewed test-only partitions- Self-discard validation rule (check 7) in
shared_prompt.txt-- agents must discard findings they conclude are not actually problems
- Refactored
start.mdorchestrator to delegate workflow steps to Python subcommands instead of inline shell logic setupsubcommand now accepts--cr-dir-prefixand creates CR_DIR with random suffix, removing the need for the orchestrator to generate random directory namesroutesubcommand now accepts--intentparameter and outputsmax_bha_agentsfor downstream partition cap enforcement- Reduced default partition LOC budget from 800 to 500
run-judgesskill now accepts a--workdir <path>parameter for standalone use outsiderun-loop.sh; resolved in order:--workdirarg →$CLOSEDLOOP_WORKDIRenv var →.closedloop-ai/judgesdefault (directory created automatically if absent)
run-loop.shjudge invocations (plan_judges,code_judges) now pass--workdir $workdirexplicitly in theclaude -pprompt, aligning with the updatedrun-judgesskill parameter contract
- New
prdartifact type support inrun-judgesskill — 4 dedicated PRD judges executed in 2-phase execution, output toprd-judges.json, validated with--category prd - New
prd-auditoragent — structural completeness auditor for draft PRDs; checks US/AC coverage, success metrics table completeness, critical open questions, scope section structure, kill criteria presence, and template section inventory - New
prd-dependency-judgeagent — evaluates PRD dependency completeness and risk assessment; flags missing dependencies, underdefined integration points, and unacknowledged cross-team risks - New
prd-testability-judgeagent — evaluates whether PRD acceptance criteria are testable and measurable; flags vague or unverifiable criteria and missing success metrics - New
prd-scope-judgeagent — evaluates PRD scope discipline and hypothesis traceability; flags stories with no traceable origin, out-of-scope overlaps, story count exceeding 8, and unacknowledged dependencies; emits review-delta JSON - New
prd_preamble.mdinskills/artifact-type-tailored-context/preambles/— artifact-type-tailored context preamble injected before PRD judge prompts validate_judge_report.py: Addedprdcategory toJUDGE_REGISTRYwith 4 expected judges (prd-auditor,prd-dependency-judge,prd-testability-judge,prd-scope-judge)validate_judge_report.py: Replacedvalid_suffixeslist withVALID_SUFFIXESdict mapping each category to its acceptedreport_idsuffixes (prdmaps to["-prd-judges"])validate_judge_report.py: ReconciledJUDGE_REGISTRYplan set — removed phantom entriesefficiency-judgeandinformativeness-relevance-judge; addedbrownfield-accuracy-judge,codebase-grounding-judge, andconvention-adherence-judgejudge-input.schema.json: Added"prd"to theevaluation_typeenum
stream_formatter.pynow accumulates per-model token usage from assistant events and prints a summary in the format the harness expects, fixing zero token counts for PLAN/EXECUTE loops
stream_formatter.pyreturns early onBrokenPipeErrorbefore printing usage summary, preventing tracebacks when used in pipelines with early-exit consumers
- New
brownfield-accuracy-judgeagent — evaluates how accurately a plan accounts for existing code (reuse vs reimplementation, integration-point accuracy, scope accuracy against investigation findings) - New
codebase-grounding-judgeagent — detects hallucinated file paths, nonexistent modules, and fabricated APIs by comparing plan claims against the investigation log - New
convention-adherence-judgeagent — evaluates whether a plan follows the conventions, patterns, and style found in the actual codebase as documented in the investigation log
- Updated
run-judgesskill to support 16 plan judges (up from 13), adding the three new grounding/brownfield/convention judges in Batch 4 brownfield-accuracy-judgeandconvention-adherence-judgenow invoke@code:pre-explorerto generateinvestigation-log.mdwhen absent, instead of immediately scoring 0.5; fall back to 0.5 only if pre-explorer fails or the file remains absentcodebase-grounding-judge: add validation step to ensure net-new code does not duplicate existing functionality (e.g., utilities/helpers already in codebase)
- Restored boolean semantics for
has_code_changesinrun-loop.shand updated judge gating to skip code judges when no implementation changes are detected, without relying on numeric stdout parsing
- New
context-manager-for-judgesagent (moved fromcodeplugin) to orchestrate context compression for judge evaluation - New
judge-input.schema.json— formal JSON schema defining the standard judge input contract withsource_of_truthfield - Investigation log (
investigation-log.md) reuse in plan judge context with pre-explorer fallback when noCLOSEDLOOP_WORKDIRis set
- Generalized judge input contract to use orchestrator-provided
judge-input.json(task + context envelope) instead of hardcoded artifact assumptions - Standardized all judge agents to read
judge-input.jsonfrom$CLOSEDLOOP_WORKDIRand load mapped artifacts via source-of-truth ordering - Centralized judge input-read requirements into shared preamble
common_input_preamble.md; judge-specific files no longer duplicate input-contract boilerplate - Enforced strict SSOT by removing residual per-agent
Input Contractstubs;common_input_preamble.mdis now the single runtime source for input-loading guidance
- Added
source_of_truthto required array injudge-input.schema.json— schema now matches SKILL.md and judge agent expectations for evidence prioritization
- Migrated session/hook data directory from
.claude/.closedloop/to.closedloop-ai/across all hooks (session-start,session-end,subagent-start,subagent-stop,pretooluse,loop-stop) andsetup-closedloop.sh, with legacy fallback for mid-upgrade sessions - Added legacy directory cleanup in
session-end-hook.sh— removes stale PID mappings, expired session files, and deletes empty legacy directory on session end
- Fixed pattern cap trimming to sort by staleness flags only instead of confidence — low-confidence patterns were always dropped before being observed, preventing them from ever earning higher confidence
- Fixed extraneous f-string prefix lint warning in
write_merged_patterns.pydefault header
- Updated
process-learningscap strategy to trim[PRUNE]then[STALE]then[REVIEW], withseen_countas tiebreaker
- Integrated
investigation-log.mdinto judge context assembly, sourced from$CLOSEDLOOP_WORKDIR
- Fixed judges agents path resolution in
run-loop.shto support monorepo, cache, and marketplace installation layouts via a four-level fallback strategy (CLOSEDLOOP_JUDGES_AGENTS_DIRenv override → repo-relative path → non-versioned sibling → latest semver-versioned sibling) - Fixed agent snapshot to read judge agents from the judges plugin rather than the code plugin, and corrected
pluginfield in manifest to"judges"
- Removed
github-reviewslash command —/code-review:github-reviewis no longer a valid entry point. Use/code-review:start --githubinstead. - Renamed
review.md→start.md— slash command is now/code-review:start - Moved
github-review.mdfromcommands/toprompts/— callers using${CLAUDE_PLUGIN_ROOT}/commands/github-review.mdmust update to${CLAUDE_PLUGIN_ROOT}/prompts/github-review.md
- Unified session directory path for all modes — removed
$RUNNER_TEMPoverride in GitHub CI, now uses.closedloop-ai/code-review/cr-<RANDOM>everywhere - Replaced Bash heredoc/cat usage with Write and Read tools for PR metadata file operations in
github-review.md - Updated temp file path references from
$RUNNER_TEMP/cr-review/to<CR_DIR>/*in GitHub mode constraints - Fixed usage examples to use
/startto match the command filename - Fixed internal references from
code-review-github.mdtogithub-review.md
- Compound Bash command prohibition in GitHub mode — no
&&,||,;, or|pipes allowed
- Updated
review-delta.schema.jsondescription to reference "code hybrid workflow" instead of "impl-plan hybrid workflow" - Updated
compliance-checkpoint.mdto reference/codeinstead of/impl-plan - Removed
Bashfromvisual-qa-subagenttool list to prevent shell access during visual QA
- Added credential theft blocklist to
pretooluse-hook.sh: denies Bash commands and file access targeting macOS Keychain, browser cookie databases, SSH private keys, and cloud credentials - Blocklist applies to all Claude sessions, not just ClosedLoop-managed sessions
- Schema-aligned constraints in AGENT_FORMAT.md:
tools,skills,permissionModefields,namekebab-case/64-char limit,description1024-char limit, expanded 8-color enum withcyan/pink - Context-engineering activation in agent-prompt-generator via
platform:context-engineeringskill - Tools/skills inline format validation in agent-prompt-validator (BLOCKING on block array syntax)
additionalPropertiesviolation detection andskills→Skilltool cross-check- Critic Review Schema Alignment (Check 8) and critic-gates.json Structure Validation (Check 9) in generation-validator
- critic-gates.json schema validation in bootstrap-validator
- Context-engineering compliance warnings in anti-pattern detection
descriptionmax raised from 120 → 1024 chars (warn >200)modelenum now acceptsinheritcolorfield changed from required to optional; enum expanded to 8 values- Removed legacy
prd2plan/directory namespace — agent output now writes to.claude/agents/(flat) - Moved
.bootstrap-metadata.jsonfrom.claude/agents/prd2plan/to.closedloop-ai/bootstrap-metadata.json - Replaced all
/impl-plancommand references with/code - Removed DAG validation infrastructure (deleted
impl-plan-dag.schema.json, removed Check 2 from bootstrap-validator) - Updated default
--target-commandfromimpl-plantocode - Updated default
--output-dirfrom.claude/agents/prd2plan/to.claude/agents/
- Generalized
prd-creatorskill description and replaced analytics discovery step with risks assessment - Updated PRD template to add compliance checkpoint and remove event instrumentation section
- Revised story patterns and examples references to align with compliance-focused workflow
- Deleted
event-instrumentation.mdreference
- Migrated learnings path from
~/.claude/.learnings/to~/.closedloop-ai/learnings/inpretooluse-hook.shandsubagent-start-hook.shwith legacy fallback
- Migrated learnings path from
~/.claude/.learnings/to~/.closedloop-ai/learnings/across commands, tools, and skills with legacy fallback
- Initial release
- Bootstrap plugin for ClosedLoop agent creation and validation
- Step 8.5 in
run-loop.shfor deterministic TOON writing viawrite_merged_patterns.py
- New
prd-creatorskill for drafting lightweight PRDs through conversational workflow
- Initial release
- Initial release
- Initial release
- New
claude-creatorskill for scaffolding and creating new skills from scratch
- Initial release
- New
write_merged_patterns.pytool for deterministic JSON-to-TOON conversion
- Refactored
process-learningscommand to outputmerge-result.jsoninstead of writing TOON directly - Updated
process-chat-learnings.shto run deterministic TOON write step after classification
- Initial release