Skip to content

v1.0.17

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Jun 13:24

What's Changed

  • Feat: /scope command — complexity estimate before work-on by @RapierCraft in #621
  • Feat: /changelog command — auto-generate release notes from FORGE annotations by @RapierCraft in #622
  • Feat: /status command — pipeline-wide situational awareness by @rapiercraft-forge[bot] in #620
  • Feat: /explain command — plain-English breakdown of FORGE annotations by @RapierCraft in #623
  • Feat: /diagnose command — trace pipeline annotation chain and identify failure point by @RapierCraft in #629
  • Feat: /replay command — read-only playback of pipeline runs by @RapierCraft in #625
  • feat(commands): /resume — context recovery after compaction by @RapierCraft in #624
  • Feat: /adopt command — bootstrap existing repos for ForgeDock by @RapierCraft in #627
  • Fix: session-start.mjs hook registration in settings.json by @RapierCraft in #631
  • chore: merge stranded Wave 1 code into staging (lane routing fix) by @RapierCraft in #640
  • Fix: grep -oP not portable on macOS in /adopt issue count (#638) by @RapierCraft in #644
  • Fix(adopt): correct phase skip target from Phase 5 to Phase 6 by @RapierCraft in #645
  • Fix: remove dead awk CONTRACT extraction in /explain Phase 3 by @RapierCraft in #646
  • Fix(adopt): Investigation type maps to 'feature' label instead of 'documentation' by @RapierCraft in #642
  • fix(diagnose): correct FORGE:INVESTIGATOR:COMPLETE → INVESTIGATION:COMPLETE in F3/F4 by @RapierCraft in #647
  • Fix: emit 'no PRs found' message when changelog range yields empty result by @RapierCraft in #643
  • fix(status): replace grep -oP with portable sed for macOS compatibility by @RapierCraft in #641
  • Fix: /replay triple-quote injection via env var body pass by @RapierCraft in #648
  • Feat: inject ForgeDock behavioral rules into project CLAUDE.md on install by @RapierCraft in #649
  • Feat: stub-based command install to reduce context load by ~99% by @RapierCraft in #656
  • Fix: add enable/disable/status CLI commands (#608) by @RapierCraft in #660
  • Fix: uninstall fully reverses all install side-effects by @RapierCraft in #661
  • Feat: forgedock doctor — installation health check by @RapierCraft in #662
  • Feat: wire premium install TUI into forgedock.mjs (#605) by @RapierCraft in #664
  • feat(devdocs): create devdocs/agent/github-cli-patterns.md — GitHub CLI cheat sheet for pipeline agents by @RapierCraft in #695
  • feat(bin): merge /scope command to main — pre-flight complexity estimate (#681) by @RapierCraft in #696
  • feat(devdocs): DevDocs v2 frontmatter schema — add lifecycle fields to all template files by @RapierCraft in #697
  • Fix: gh api --jq --arg broken pattern in review-pr.md and review-pr-agents.md by @RapierCraft in #698
  • Fix: gh gist edit stdin pipe — use temp file in investigate.md by @RapierCraft in #700
  • Feat(docs): claude-breakpoints.json — structured registry of known Claude Code version breakpoints by @RapierCraft in #699
  • Feat(scripts): transition-label.sh — label state machine with validation by @RapierCraft in #702
  • feat(scripts): classify-lane.sh — deterministic lane routing from issue milestone by @RapierCraft in #703
  • Feat(scripts): scaffold .forgedock/scripts/ directory and gitignore integration on init by @rapiercraft-forge[bot] in #704
  • Feat: validate-pr-target.sh — hard-fail if PR base doesn't match classified lane by @rapiercraft-forge[bot] in #712
  • feat(installer): symlink scripts/ to ~/.claude/scripts/ and wire classify-lane.sh into orchestrate.md by @rapiercraft-forge[bot] in #713
  • Feat: universal vs adaptive scripts boundary — precedence rules and override semantics by @rapiercraft-forge[bot] in #714
  • fix(work-on): branch existence validation + PR_BASE computed before worktree creation by @rapiercraft-forge[bot] in #718
  • Feat(commands): /compat-audit — on-demand Claude Code compatibility and feature parity report by @rapiercraft-forge[bot] in #717
  • Feat: DevDocs v2 index format + selective loading by @rapiercraft-forge[bot] in #720
  • Feat: DevDocs self-dogfooding — scaffold own devdocs/ with v2 schema by @rapiercraft-forge[bot] in #729
  • Feat: machine-readable phase checkpoint — deterministic resume without prose parsing by @rapiercraft-forge[bot] in #730
  • feat(scripts): forge.yaml learned section and pattern capture (#667) by @rapiercraft-forge[bot] in #728
  • feat(work-on): complexity-proportional fast-path — skip phases for simple and investigation tasks by @rapiercraft-forge[bot] in #736
  • Feat(commands): /optimize command — generate per-repo adaptive scripts (#668) by @rapiercraft-forge[bot] in #735
  • feat(orchestrate): stall detection and structured auto-resume (#683) by @rapiercraft-forge[bot] in #737
  • perf(docs): measure and document token savings from per-repo adaptive scripts (#673) by @rapiercraft-forge[bot] in #741
  • docs(quality-gate): clarify adaptive behavior and stack-specific checks by @rapiercraft-forge[bot] in #751
  • fix(compat-audit): export FORGE_HOME_PATH before Node.js heredoc by @rapiercraft-forge[bot] in #749
  • Fix: format-commit.sh template — add TYPE arg to fix SCOPE used as type prefix by @rapiercraft-forge[bot] in #748
  • feat(ci): add test gate before npm publish by @rapiercraft-forge[bot] in #750
  • Fix: replace hardcoded user-specific paths in devdocs with generic placeholders by @rapiercraft-forge[bot] in #753
  • docs(readme): soften benchmark claim to avoid unverifiable specifics by @rapiercraft-forge[bot] in #754
  • fix(cli): use os.homedir() instead of process.env.HOME by @rapiercraft-forge[bot] in #755
  • fix(scripts): guard -R flag against missing value in classify-lane.sh by @rapiercraft-forge[bot] in #752
  • fix(work-on): add FORGE:HEARTBEAT inline at Phase 1/3/5 entry points (#740) by @rapiercraft-forge[bot] in #756
  • Fix: gitignore dedup guard uses line-by-line active-line check (#708) by @rapiercraft-forge[bot] in #757
  • fix(build): sanitize issue labels before AWK domain matching to prevent injection by @rapiercraft-forge[bot] in #759
  • fix(work-on): resolve correction capture owner login via tiered lookup by @rapiercraft-forge[bot] in #758
  • fix(work-on): clarify AC for TRIVIAL fast-path — Builder Contract is retained, not skipped by @rapiercraft-forge[bot] in #760
  • Fix(compat-audit): use npx forgedock update in breakpoints advisory by @rapiercraft-forge[bot] in #761
  • fix(scripts): strip git-invalid chars from classify-lane.sh slug (#707) by @rapiercraft-forge[bot] in #762
  • fix(devdocs): remove closed issues #619 and #635 from milestone table by @rapiercraft-forge[bot] in #763
  • docs: document yq as prerequisite tooling for forge commands by @rapiercraft-forge[bot] in #764
  • fix(hooks): replace ghost enable/disable commands in session-start hook by @rapiercraft-forge[bot] in #765
  • docs(architecture): clarify adaptive script execution costs in token savings table by @rapiercraft-forge[bot] in #767
  • fix(scripts): wire FORGE_LABEL_MAP env var to transition-label.sh by @rapiercraft-forge[bot] in #768
  • fix(compat-audit): pass VERSION_CACHE via env var instead of interpolating into node -e string by @rapiercraft-forge[bot] in #769
  • Refactor: remove unused step parameter from copyTree inner function by @rapiercraft-forge[bot] in #770
  • docs(scripts): integrate adaptive_scripts.enabled check into resolve_script() algorithm by @rapiercraft-forge[bot] in #771
  • fix(scripts): symmetric remote branch validation in classify-lane.sh fast-lane path by @rapiercraft-forge[bot] in #772
  • fix(installer): uninstall() removes scripts from ~/.claude/scripts/ by @rapiercraft-forge[bot] in #773
  • fix(installer): add PIPELINE_SCRIPTS allowlist to restrict linkScripts() output by @rapiercraft-forge[bot] in #774
  • fix(devdocs): remove 7 closed issues from milestone table by @rapiercraft-forge[bot] in #777
  • Feat(pipeline): per-issue graph decision record for provenance and benchmarking by @RapierCraft in #778
  • Fix(pipeline): standardize GDR lane placeholder to {lane} convention by @RapierCraft in #781
  • fix(work-on): pipe gh api output to jq for --arg variable injection by @rapiercraft-forge[bot] in #788
  • Fix: empty slug guard for Unicode/symbol-only milestone titles in classify-lane.sh by @rapiercraft-forge[bot] in #787
  • fix(commands): replace grep -oP with portable sed/grep -oE for macOS compatibility by @rapiercraft-forge[bot] in #794
  • fix(commands): replace greedy sed with grep -oE for GDR count extraction by @RapierCraft in #796
  • fix(doctor): use execFileSync args array to prevent shell injection by @rapiercraft-forge[bot] in #797
  • Fix: stripJsonc trailing-comma removal integrated into parser (no regex post-pass) by @rapiercraft-forge[bot] in #798
  • Fix: symlink update cleans up .tmp and guards outer catch with ENOENT by @rapiercraft-forge[bot] in #799
  • Fix: refresh stale FORGE_HOME export in shell profile on reinstall by @rapiercraft-forge[bot] in #800
  • fix(installer): extend hook path escaping to cover $, backtick, ! (#792) by @rapiercraft-forge[bot] in #801
  • milestone: Deterministic Pipeline v2 → staging by @rapiercraft-forge[bot] in #802
  • fix(scripts): convert GH_REPO_FLAG to array in classify-lane.sh by @rapiercraft-forge[bot] in #816
  • Fix: mark claude-code peerDependency as optional to prevent ERESOLVE on npx by @rapiercraft-forge[bot] in #818
  • fix(commands): replace grep -oP PCRE with portable grep -oE in Wave 2 commands by @rapiercraft-forge[bot] in #817
  • Feat: auto-move review findings to fast lane when milestone PR merges by @rapiercraft-forge[bot] in #819
  • Fix: work-on.md uses resolve_script() at all script call sites by @rapiercraft-forge[bot] in #821
  • fix(scripts): validate -R argument format in classify-lane.sh (#806) by @rapiercraft-forge[bot] in #824
  • Fix: escape FORGE_HOME metacharacters in shell profile export (#808) by @rapiercraft-forge[bot] in #825
  • Fix(review-pr): assign REPO in Phase 1A to fix unset-variable on clean-review path by @rapiercraft-forge[bot] in #826
  • Fix: linkCommands() missing Windows EPERM symlink fallback by @rapiercraft-forge[bot] in #827
  • Fix: escape backslashes in path fields before YAML embedding (#810) by @RapierCraft in #829
  • Fix: suppress init() stdout when called from install() (#812) by @rapiercraft-forge[bot] in #830
  • Fix: add atomicWriteFile() helper — eliminate non-atomic writes in injectManagedBlock, removeManagedBlock, and forge.yaml init by @rapiercraft-forge[bot] in #831
  • Fix: add EPERM/EACCES fallback to symlink update path in linkCommands() and linkScripts() by @rapiercraft-forge[bot] in #832
  • Fix: resolve_script() call sites use canonical case dispatch instead of cut -d: -f2- by @rapiercraft-forge[bot] in #833
  • Fix: work-on.md stale transition-label.sh prose → resolve_script convention by @rapiercraft-forge[bot] in #835
  • Ship milestone: Deterministic Pipeline v2 by @rapiercraft-forge[bot] in #837
  • Ship milestone: L0–L1 Licensing, Governance & Repo Split by @rapiercraft-forge[bot] in #836
  • Fix: Phase 4C classify-lane recompute error guard by @RapierCraft in #840
  • Fix: rename run_script comment header to usage-pattern notation by @rapiercraft-forge[bot] in #841
  • Fix: correct run_script comment — validate-pr-target warns, does not exit 1 by @rapiercraft-forge[bot] in #842
  • Release: deterministic pipeline v2, project-agnostic commands, licensing & governance by @rapiercraft-forge[bot] in #843

Full Changelog: v1.0.16...v1.0.17