Format follows Keep a Changelog.
2.9.12 — 2026-04-02
Added
- Copilot deployer adapter —
pactkit-copilotadapter package registered via entry_points.pactkit update --format copilotdeploys skills, commands, agents, andcopilot-instructions.mdto.github/. - OCP-compliant rules header dispatch —
_build_command_rules_header()dispatches onprofile.rules_import_styleinstead of hardcoded profile name checks. - Multi-stack auto-detection —
pactkit initauto-detects multiple stacks and writesstack: [python, typescript]list syntax topactkit.yaml. - Two-tier module graph —
visualize --mode modulegenerates dimension-based subgraphs. - Prompt template sync — Canonical prompt templates rendered consistently across all deployer formats.
Fixed
- OpenCode
rules_import_style— Corrected from"instructions"to"inline"to match actual behavior.
2.9.11 — 2026-04-01
Fixed
- Rules template variables —
_deploy_rules()now renders{PROJECT_CONFIG_DIR}and other template variables via_render_prompt(). Previously rules were deployed with raw template strings in Codex/OpenCode. - Copilot agent YAML corruption — Agent
tools:field was iterated char-by-char ([R, e, a, d, ...]→[Read, Write, ...]). - Copilot double annotation —
(terminal only) (terminal only)reduced to single annotation. - Skill CLI refs — All SKILL.md files now pass through
_replace_slash_commands().
2.9.10 — 2026-04-01
Fixed
- Skill script
__future__import —load_script()now hoistsfrom __future__ import annotationsabove_SHARED_HEADER, fixing SyntaxError in deployedspec_linter.py. - Lessons table auto-repair —
append_lesson()now calls_repair_table_structure()before appending, fixing: missing header, wrong header format, data rows before header.
2.9.9 — 2026-04-01
Added
- GitHub Copilot adapter support — New
copilotFormatProfile.pactkit init --format copilotdeploys to project.github/directory. - Dynamic
--formatCLI choices —init,update,upgradecommands derive choices fromVALID_FORMATSinstead of hardcoded list.
Fixed
- Excluded command stripping —
strip_excluded_command_references()strips/project-sprintreferences from all rendered prompts for formats that exclude it.
2.9.4 — 2026-03-31
Fixed
- Init playbook DIP violation — Eliminated
DETECTED_ENVruntime IDE detection; all hardcoded paths replaced with template variables. - Full DIP audit — Fixed hardcoded IDE paths in doctor skill, core-protocol rule, and done command.
- tree-sitter promoted to core dependency — No longer optional; CI install updated.
--focusscan optimization —_scan_filesnow scans only the focused subdirectory, not the full project root.- SCAN_EXCLUDES expanded — From 13 to 30+ entries covering Go, Java, Node, IDE, and VCS directories.
2.9.3 — 2026-03-31
Added
- Multi-language call chain fix (STORY-slim-069) — Dispatch hint comment parsing (
pactkit-trace: dispatches_to) and inheritance edge linking extended from Python-only to Go (struct embedding), Java (extends/implements), and TypeScript (class extends) tree-sitter analyzers. - CLI visualize args exposed (HOTFIX-slim-070) —
--entry,--focus,--reverse,--depth,--max-nodesnow reachable frompactkit visualizeCLI.
Fixed
- 4 call chain断链 (STORY-slim-068) — dict.update scan collision, dynamic dispatch hints, abstract method orphan nodes, cross-package stub edges.
- Nested subgraph call graph (STORY-slim-067) — Fan-in/fan-out analysis with subgraph grouping.
- Edge dedup + cycle fix (HOTFIX-slim-069) — ×N labels for duplicate edges, false positive cycle detection eliminated.
2.9.2 — 2026-03-30
Fixed
- FormatProfile.excluded_commands —
project-sprintexcluded for OpenCode/Codex (requires subagent team, Claude Code only). Doctorcheck_config_driftnow respects format-level exclusions. - Redundant pactkit.yaml component lists — Removed explicit agents/commands/skills/rules lists from
.opencode/pactkit.yaml(absence = deploy all). - Orphaned spec cleanup — Removed 7 pre-developer-prefix spec files that were already archived.
2.9.1 — 2026-03-30
Added
- Topology-aware trace — ApiCallParser (tree-sitter-typescript) and AgentParser (LangGraph/YAML/MCP) for multi-topology code tracing. Plan/Act phases now include topology gate.
Fixed
- Monorepo subdirectory detection — TopologyParser.detect() now scans immediate subdirectories, fixing false negatives for monorepo layouts.
- Doctor false drift warnings —
check_config_drift()now searches global deploy directories instead of only project-local paths. - Canonical lessons.md header — Init enforces
| Date | Lesson | Context |table header, preventing AI-invented column names.
2.9.0 — 2026-03-28
Added
pactkit initdeploys all IDEs by default —--format allis now the CLI default, deploying Claude Code + OpenCode + Codex configs in one shot. No need to specify--formatper IDE.
Fixed
- Entry_point deployer circular import — Lazy-load entry_point deployers to fix
ValueErrorwhen runningpactkit initvia pipx.
2.8.0 — 2026-03-27
Added
- 3-IDE Default Install —
pip install pactkitnow installs all three IDE adapters (Claude Code + OpenCode + Codex) out of the box.
Fixed
- OpenCode Command Architecture — Reverted OpenCode from skills-only back to
commands/+skills/dual architecture. OpenCode auto-discovers commands fromcommands/*.md, while embedded skills inskills/are loaded by AI agent on demand. - Spec Version Confusion —
/project-planno longer reads version frompactkit.yaml(toolkit version). Now explicitly reads from project manifest (pyproject.toml,package.json).
Changed
- Cross-IDE Command Architecture:
- Claude Code: skills-only (
skills/project-*/SKILL.md), prefix/ - OpenCode: commands + skills (
commands/project-*.md+skills/pactkit-*/SKILL.md), prefix/ - Codex: skills-only (
skills/project-*/SKILL.md), prefix$
- Claude Code: skills-only (
2.7.0 — 2026-03-27
Added
- Commands → Skills Migration (STORY-slim-063) — 11 PDCA commands now deploy as
skills/{name}/SKILL.mdsubdirectories for Claude Code format.VALID_SKILLSexpanded from 10 to 21 entries. - Legacy Command Cleanup — Auto-removes old
project-*.mdfromcommands/on upgrade. - Codex FormatProfile (STORY-slim-060) — Re-added
codexprofile to core for thin adapter pattern.pactkit-codexpublished to PyPI. - 3-Package Coordinated Release — First simultaneous release across
pactkit,pactkit-opencode, andpactkit-codex.
Fixed
- board.py update_task (HOTFIX-slim-061) — Recognizes bullet-format Done entries.
- visualize --lazy focus (HOTFIX-slim-062) — Removed hardcoded focus refresh; added stem matching.
Changed
- Unified deploy summary shows
Skills (embedded + commands)count. - Cross-format isolation: OpenCode and Codex unaffected by skills migration.
2.6.0 — 2026-03-26
Added
- DeployerProtocol & DeployerBase (STORY-slim-057) — Extracted deployer interface and shared base class with registry pattern for adapter-based plugin architecture.
- pactkit-opencode Adapter Package (STORY-slim-058) — Extracted all 8 OpenCode-specific functions into standalone package with entry_points-based auto-registration.
- Entry Point Auto-Discovery — Scans
pactkit.deployersentry_point group at import time for zero-config adapter registration.
Removed
- Codex Profile (STORY-slim-059) — Removed dead codex FormatProfile and all references. VALID_FORMATS auto-shrinks via FORMAT_PROFILES.keys().
- OpenCode Functions from Core — 8 functions (~300 lines) moved to pactkit-opencode adapter. deployer.py reduced -17%.
Changed
- deploy() dispatches via registry instead of if/elif chain. New formats only need register_deployer().
2.5.0 — 2026-03-26
Added
- E2E CLI Coverage 100% — 60 subprocess-based E2E tests covering all 25 CLI subcommands
python -m pactkit— Package now supports module invocation as alternative entry point
Fixed
- Mermaid Quote Injection — File/function names containing
"no longer break.mmdgraph rendering - O(N×E) Callee Resolution —
_resolve_callee()uses pre-built suffix index for O(1) lookup - Module Index Collision — Same-name files in different directories no longer cause silent node loss
- Focus Substring False Positives —
--focus auth.pyno longer matchesoauth.py - BFS O(N²) Pop — All BFS sites now use
deque.popleft()instead oflist.pop(0) - Non-Atomic Writes —
pactkit.yaml,.mmdfiles, andatomic_write()all use tmp+rename pattern - Deployer Encoding — 3 bare
read_text()calls now specifyencoding='utf-8' - Large File OOM —
MAX_FILE_BYTES=1MBguard prevents OOM on auto-generated mega-files - Sprint Redundant Operations — Eliminated duplicate visualize/clean/context runs
2.4.1 — 2026-03-26
Fixed
- CI Template Override —
pactkit updateno longer reverts customci.install_cmdinpactkit.yaml - Board ID Validation — Now supports developer-prefixed IDs (
HOTFIX-slim-052,STORY-alice-001)
Added
- Board
move_storyCommand — Move stories between board sections via CLI - Automated PyPI Publish — Tag-triggered CI publishes to PyPI via trusted publisher (OIDC)
Changed
- Closed-Source Migration — Source repo now private; public entry point at pactkit-public
2.4.0 — 2026-03-25
Added
- Multi-Architecture Topology Analysis —
pactkit visualizenow understands 3 project topologies beyond code structure:- PDCA topology — Plan→Act→Check→Done sequence edges in workflow graphs
- Service topology — Parses
docker-compose.yml,openapi.yaml,*.protofor service dependency graphs - Frontend topology — Parses Next.js (App/Pages Router), Vue Router for page→component→hook→store chains
- Cross-topology impact — Regression analysis works across all topology types
- Unified layered graph — Merges code + topology dimensions into a single visualization
Fixed
- Topology auto-detection reliability improvements
- CI dependency configuration for multilang test coverage
- Spec/PRD cross-reference consistency (4 issues)
2.3.0 — 2026-03-22
Added
- 25 Deterministic CLI Subcommands — Core operations now run as Python code, not prompts:
clean,regression,context,lint,test-map,coverage-gate,doctor,spec-lint,spec-status, and more - Coverage Gate —
pactkit coverage-gateenforces 3-tier thresholds (≥80% PASS, 50-79% WARN, <50% BLOCK) - Auto Version Sync —
pactkit update --if-neededskips redeploy when already current - E2E Testing Framework — Config-driven E2E strategy in
pactkit.yaml - Spec Linter Enhancements — W007 Req-AC coverage, W008 placeholder detection, E007 per-subsection validation
Fixed
- Plan phase stall on large Spec generation (split into sub-steps)
- Explore subagent unbounded search (bounded delegation pattern)
- 25+ cross-flow integrity gaps across CLI and prompt references
2.2.0 — 2026-03-20
Added
- Context-Aware Rule Loading — Each command loads only the rules it needs, reducing token usage by 20-83%
- Stack-Aware CI Pipeline — Supports Python, Node.js, Go, and Java with correct setup and test runners
- GitHub Enterprise (GHE) Support —
ci.github_hostandci.actions_refconfiguration
2.1.0 — 2026-03-17
Added
- Multi-Format Deployment — Adding a new AI tool format requires only one registry entry; all downstream code auto-adapts
- Template Variables — 48 hardcoded paths replaced with named placeholders resolved at deploy time
- Document Schema Registry —
pactkit schema [type]CLI for document structure rule discovery - Lazy Rule Loading — Per-turn system prompt overhead reduced by 62%
Fixed
/project-initenvironment detection improvements- Config merge preserves user entries (no more overwrites)
Earlier Releases
- 1.5.0 — PDCA Quality Gates, Impact-Based Regression, Done/Release/PR command split, Community Standards
- 1.4.0 — Spec Linter (14 rules), Active Clarify Gate, Pre-Act Consistency Check, Auto-PR
- 1.3.0 — CI/CD Pipeline Generation, Issue Tracker Integration, Hook Templates, Doctor Diagnostics
- 1.0.0 — Initial public release. 9 agents, 13 commands, 3 skills, 6 constitution rules