Skip to content

Update the README.md to guide user to the plugin implimentation. #9

Update the README.md to guide user to the plugin implimentation.

Update the README.md to guide user to the plugin implimentation. #9

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- name: Run test suite
run: node --test app/test/*.test.js
- name: Dependency audit
# Mirrors the enforce-lanes dependency policy: with an empty
# dependencies.allow in .claude/lanes.json this enforces zero
# dependencies; once packages are approved it instead verifies
# package.json declares only approved packages.
run: node tools/dep-audit.js
- name: Plugin parity audit
# The plugin/ bundle republishes .claude/ for multi-project installs
# (Route B). Agents, commands, and the three hook scripts must stay
# byte-identical to their .claude/ sources so pushing here is the only
# place the process is edited. plugin/hooks/hooks.json and the manifests
# are plugin-only and deliberately not mirrored.
run: |
fail=0
diff -ru .claude/agents plugin/agents || fail=1
diff -ru .claude/commands plugin/commands || fail=1
for h in enforce-lanes.js check-footer.js session-start.js; do
diff -u ".claude/hooks/$h" "plugin/hooks/$h" || fail=1
done
for j in .claude-plugin/marketplace.json plugin/.claude-plugin/plugin.json plugin/hooks/hooks.json; do
node -e "JSON.parse(require('fs').readFileSync('$j','utf8'))" || fail=1
done
if [ "$fail" -ne 0 ]; then
echo "::error::plugin/ has drifted from .claude/ — re-copy the changed files so the plugin bundle matches"
exit 1
fi
- name: Lanes template audit
# The shipped plugin/templates/lanes.json is the copy-and-adapt starter a
# reused project drops in as .claude/lanes.json. Verify it stays valid,
# covers all four agents, and still agrees with the hook — e.g. its
# retargeted backend lane can write terraform/, the reuse gap it closes.
run: node tools/lanes-audit.js
- name: Design-token audit
# Hex colors in styles.css may only appear where a custom property is
# being *defined*; everything else must consume tokens via var(--…).
run: |
violations=$(grep -nE '#[0-9a-fA-F]{3,8}' app/public/styles.css | grep -vE '^[0-9]+:\s*--' || true)
if [ -n "$violations" ]; then
echo "::error::hex colors outside token definitions in app/public/styles.css:"
echo "$violations"
exit 1
fi