mirror of
https://github.com/affaan-m/ECC.git
synced 2026-08-17 21:15:40 +02:00
* feat: add Plan Canvas - browser annotate-and-approve review for plan artifacts - scripts/plan-canvas.js CLI (open/await/end/stop/server; bin ecc-plan-canvas) - loopback server + ECC-styled chrome + annotation SDK + zero-dep markdown renderer - Approve/Request-changes verdicts wired to the /plan confirmation gate - plan-canvas skill, /plan-canvas command, SessionStart hook surfacing open reviews - shared scripts/lib/loopback-guard.js extracted from control-pane (API re-exported) - 121 new tests incl. full-workflow E2E; registered in manifests, catalog, registry Inspired by lavish-axi (https://github.com/kunchenguid/lavish-axi) by @kunchenguid; original ECC-native implementation, not a port. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * refactor(plan-canvas): invoke via ecc-plan-canvas bin so the skill works from any project Skill/command referenced a cwd-relative `node scripts/plan-canvas.js`, unusable outside the ECC root. Switch to the ecc-plan-canvas bin (and $CLAUDE_PLUGIN_ROOT fallback) and align CLI next_step hints so an agent can run it as a skill in any repo. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(plan-canvas): render Mermaid diagrams + ship Codex cross-harness surface - markdown renderer emits <pre class="mermaid"> for ```mermaid blocks (source entity-escaped so the browser decodes it for the renderer while blocking injection) - artifact template loads a pinned Mermaid build only when a diagram is present, themed to ECC dark, securityLevel strict, graceful offline fallback to source (ECC_PLAN_CANVAS_MERMAID_URL overrides for a local mirror) - skill teaches Mermaid-for-diagrams and states the CLI+JSON loop is harness-agnostic - add .agents/skills/plan-canvas (Codex) with agents/openai.yaml interface manifest - register in install-modules workflow-quality paths; docs updated Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs(plan-canvas): add demo screenshot Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(ci): sync yarn.lock with new bin; add contributor checklist - yarn.lock records the ecc-plan-canvas bin so Yarn hardened-mode install no longer wants to modify the lockfile on public PRs - PR template + CONTRIBUTING gain a pre-push checklist covering the lockfile trap and the full skill/command/CLI registration surfaces Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Haley Chen <2022hachen@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
What Changed
Why This Change
Testing Done
- Manual testing completed
- Automated tests pass locally (
node tests/run-all.js) - Edge cases considered and tested
Type of Change
fix:Bug fixfeat:New featurerefactor:Code refactoringdocs:Documentationtest:Testschore:Maintenance/toolingci:CI/CD changes
Security & Quality Checklist
- No secrets or API keys committed (ghp_, sk-, AKIA, xoxb, xoxp patterns checked)
- JSON files validate cleanly
- Shell scripts pass shellcheck (if applicable)
- Pre-commit hooks pass locally (if configured)
- No sensitive data exposed in logs or output
- Follows conventional commits format
If you changed dependencies or package.json (bin / files / deps)
- Ran
yarn install --mode=update-lockfileand committed theyarn.lockchange. CI runs Yarn in hardened mode on public PRs and fails if the lockfile would be modified, so an out of dateyarn.lockbreaks the build even when nothing else is wrong.
If you added a skill, command, agent, hook, or CLI tool
- Registered in
package.json(binandfiles),manifests/install-components.json,manifests/install-modules.json, andagent.yaml - Regenerated the catalog (
npm run catalog:sync) and command registry (npm run command-registry:write) - Updated the docs tables it belongs in (
README.md,COMMANDS-QUICK-REF.md,docs/COMMAND-AGENT-MAP.md) - If it ships a new script path, added it to the publish surface allowlist (
tests/scripts/npm-publish-surface.test.js) - Cross-harness surfaces updated if applicable (for Codex,
.agents/skills/<name>/plusagents/openai.yaml; the Codex frontmatter validator allows onlyname,description,metadata,license,allowed-tools, so drop keys likeversionfrom that copy) - Full gauntlet passes locally (
npm test)
Documentation
- Updated relevant documentation
- Added comments for complex logic
- README updated (if needed)