Updated plugin.json to 0.1.2 #14
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |