@erclx/canon 5.75.0 → 5.77.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/claude/.claude-plugin/plugin.json +1 -1
  3. package/claude/skills/ci-workflow/REQUIREMENT.md +8 -2
  4. package/claude/skills/ci-workflow/SKILL.md +3 -0
  5. package/claude/skills/design-identity/REQUIREMENT.md +1 -1
  6. package/claude/skills/design-identity/SKILL.md +13 -4
  7. package/claude/skills/design-identity/references/card-route.md +11 -4
  8. package/claude/skills/git-issue/REQUIREMENT.md +4 -2
  9. package/claude/skills/git-issue/SKILL.md +32 -3
  10. package/claude/skills/git-issue/references/issue.md +7 -0
  11. package/claude/skills/issue-triage/REQUIREMENT.md +35 -0
  12. package/claude/skills/issue-triage/SKILL.md +130 -0
  13. package/claude/skills/role-orchestrator/SKILL.md +1 -1
  14. package/claude/skills/role-orchestrator/references/orchestrator-handoff.md +1 -1
  15. package/claude/skills/role-orchestrator/references/orchestrator-poll.md +15 -15
  16. package/claude/skills/role-orchestrator/scripts/poll.ts +211 -96
  17. package/claude/skills/role-orchestrator/scripts/repo.ts +53 -1
  18. package/docs/agents/migrate.md +10 -10
  19. package/docs/agents/targets.md +3 -1
  20. package/docs/migrations/by-verb.md +8 -4
  21. package/docs/workflow/ai-workflow.md +1 -1
  22. package/docs/workflow/skill-map.md +1 -0
  23. package/package.json +2 -2
  24. package/src/capture/render.ts +30 -5
  25. package/src/claude/cases/git.ts +5 -0
  26. package/src/claude/cases/workflow.ts +4 -0
  27. package/src/commands/capture.ts +38 -1
  28. package/src/commands/claude.ts +4 -0
  29. package/src/commands/targets.ts +11 -1
  30. package/src/markdown/scope.ts +2 -0
  31. package/src/migrate/session-defaults.ts +36 -8
  32. package/src/targets/registry.ts +99 -14
  33. package/src/targets/resolve.ts +3 -1
  34. package/tooling/astro/configs/card.config.mjs +4 -0
  35. package/tooling/astro/configs/scripts/check-card-exclusion.sh +7 -2
  36. package/tooling/astro/reference.md +2 -1
  37. package/tooling/claude/seeds/.claude/settings.json +4 -0
  38. package/tooling/web/configs/.github/workflows/readme-screenshot.yml +3 -1
  39. package/tooling/web/configs/.github/workflows/verify.yml +5 -2
  40. package/tooling/web/configs/scripts/install-playwright-deps.sh +52 -0
  41. package/tooling/web/reference.md +5 -0
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env bash
2
+ # Installs the Playwright system packages for the named browsers, killing an
3
+ # attempt that outlives its bound and retrying it. A degraded apt mirror hangs
4
+ # one connection rather than failing it, so a step timeout alone turns the
5
+ # hang into a red check and never recovers it, while a fresh attempt usually
6
+ # lands on a healthy backend.
7
+ #
8
+ # Usage: install-playwright-deps.sh [--package <spec>] <browser>...
9
+ # Exits 0 on the first success, 2 when no browser is named, and the last
10
+ # attempt's code when every attempt fails.
11
+ set -e
12
+
13
+ package=playwright
14
+ if [ "$1" = "--package" ]; then
15
+ package=$2
16
+ shift 2
17
+ fi
18
+
19
+ if [ $# -eq 0 ]; then
20
+ echo "Usage: install-playwright-deps.sh [--package <spec>] <browser>..." >&2
21
+ exit 2
22
+ fi
23
+
24
+ attempts=3
25
+ bound=${INSTALL_ATTEMPT_SECONDS:-150}
26
+
27
+ # The runner image sets these, yet a stalled log shows gaps of minutes, so
28
+ # print what apt actually reads to settle whether they took effect
29
+ apt-config dump | grep -E '^Acquire::(Retries|http::Timeout) ' || true
30
+
31
+ status=0
32
+ for attempt in $(seq 1 "$attempts"); do
33
+ if [ "$attempt" -gt 1 ]; then
34
+ # timeout runs as the runner user, and Linux drops its signal to the root
35
+ # apt-get playwright spawns through sudo. sudo relays it only to its own
36
+ # child shell, so a root apt-get or dpkg can outlive the kill and hold the
37
+ # lock the next attempt needs.
38
+ sudo pkill -KILL -x 'apt-get|dpkg' || true
39
+ # A kill during unpack leaves dpkg interrupted, which refuses the next
40
+ # install. Its own failure must not end the loop.
41
+ sudo dpkg --configure -a || echo "dpkg --configure -a failed before attempt ${attempt}" >&2
42
+ fi
43
+
44
+ status=0
45
+ timeout --kill-after=10 "$bound" bunx "$package" install-deps "$@" || status=$?
46
+ if [ "$status" -eq 0 ]; then
47
+ exit 0
48
+ fi
49
+ echo "attempt ${attempt}/${attempts} failed with exit ${status}" >&2
50
+ done
51
+
52
+ exit "$status"
@@ -88,6 +88,11 @@ The starter `e2e/home.spec.ts` is seeded once. Sync copies it into a project tha
88
88
  - `.github/workflows/verify.yml` runs `static-checks`, `unit-tests`, `build-verify`, and `e2e-tests`. `unit-tests` installs Chromium and runs `test:browser` only when the project defines that script.
89
89
  - Read `governance/rules/tooling/ci-workflow.md` for when a workflow's commit-back is right and when a report is
90
90
 
91
+ ## Playwright installs in CI
92
+
93
+ - Both workflows install Playwright's system packages through `scripts/install-playwright-deps.sh`, which sits beside `worktree-port.sh` and retries an attempt a stalled apt mirror hangs
94
+ - Expect each system install bounded at 10 minutes and each browser download at 5, while the jobs carry no bound, since test and build time differs per project
95
+
91
96
  ## Design references
92
97
 
93
98
  - Expect a seeded `canon/design/index.md` stub carrying `auto: false`, copied only when missing, so a project's own index is never replaced