@erclx/canon 5.11.0 → 5.12.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 (34) hide show
  1. package/claude/.claude-plugin/plugin.json +1 -1
  2. package/claude/skills/auto-ship/REQUIREMENT.md +1 -0
  3. package/claude/skills/auto-ship/SKILL.md +5 -8
  4. package/claude/skills/auto-ship/references/failure-recovery.md +0 -1
  5. package/claude/skills/auto-ship/references/ui-checklist.md +21 -0
  6. package/claude/skills/git-pr/references/evidence.md +7 -7
  7. package/claude/skills/git-ship/REQUIREMENT.md +1 -1
  8. package/claude/skills/git-ship/SKILL.md +1 -1
  9. package/claude/skills/review-craft/references/ui.md +1 -2
  10. package/claude/skills/review-pr/SKILL.md +1 -1
  11. package/claude/skills/ui-checklist/SKILL.md +1 -18
  12. package/docs/agents/gate.md +1 -1
  13. package/docs/agents/hooks.md +2 -0
  14. package/docs/agents/install-and-sync.md +2 -2
  15. package/docs/agents/pr-evidence.md +26 -25
  16. package/docs/agents/tasks-validate.md +3 -3
  17. package/docs/target/migrations.md +1 -1
  18. package/docs/workflow/ai-workflow.md +2 -1
  19. package/docs/workflow/parallel-features.md +3 -3
  20. package/package.json +3 -4
  21. package/scripts/lib/sandbox-path.sh +1 -1
  22. package/src/commands/pr.ts +16 -14
  23. package/src/gate/stages.ts +10 -2
  24. package/src/tasks/validate.ts +37 -27
  25. package/standards/tasks.md +1 -1
  26. package/tooling/base/configs/.husky/post-merge +30 -77
  27. package/tooling/base/configs/.husky/post-rewrite +3 -3
  28. package/tooling/base/reference.md +1 -1
  29. package/scripts/core/clean.sh +0 -36
  30. package/scripts/core/regen-agent-fixture.sh +0 -235
  31. package/scripts/core/regen-claude-copies.sh +0 -10
  32. package/scripts/core/regen-indexes.sh +0 -10
  33. package/scripts/core/snapshot.sh +0 -134
  34. package/scripts/core/update.sh +0 -35
@@ -1,134 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -e
3
- set -o pipefail
4
-
5
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
- PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
7
-
8
- # shellcheck source=/dev/null
9
- source "$PROJECT_ROOT/scripts/lib/ui.sh"
10
-
11
- NESTED="${VERIFY_NESTED:-false}"
12
-
13
- OUTPUT_FILE=".canon/tmp/project/PROJECT-SNAPSHOT.md"
14
-
15
- check_dependencies() {
16
- command -v find >/dev/null 2>&1 || log_error "find not installed"
17
- }
18
-
19
- load_gitignore_patterns() {
20
- if [ ! -f ".gitignore" ]; then
21
- echo ""
22
- return
23
- fi
24
- grep -v '^\s*#' .gitignore | grep -v '^\s*$' | sed 's|/$||'
25
- }
26
-
27
- is_ignored() {
28
- local name="$1"
29
- local patterns="$2"
30
-
31
- [ "$name" = ".git" ] && return 0
32
- [ "$name" = "_" ] && return 0
33
-
34
- while IFS= read -r pattern; do
35
- [ -z "$pattern" ] && continue
36
- # shellcheck disable=SC2053
37
- if [[ "$name" == $pattern ]]; then
38
- return 0
39
- fi
40
- done <<<"$patterns"
41
-
42
- return 1
43
- }
44
-
45
- build_tree() {
46
- local dir="${1:-.}"
47
- local prefix="${2:-}"
48
- local patterns="${3:-}"
49
- local entries=()
50
-
51
- while IFS= read -r entry; do
52
- local name
53
- name=$(basename "$entry")
54
- is_ignored "$name" "$patterns" && continue
55
- entries+=("$entry")
56
- done < <(find "$dir" -maxdepth 1 -mindepth 1 | sort)
57
-
58
- local count=${#entries[@]}
59
- local i=0
60
-
61
- for entry in "${entries[@]}"; do
62
- i=$((i + 1))
63
- local name
64
- name=$(basename "$entry")
65
- local connector="├──"
66
- local child_prefix="${prefix}│ "
67
-
68
- if [ "$i" -eq "$count" ]; then
69
- connector="└──"
70
- child_prefix="${prefix} "
71
- fi
72
-
73
- if [ -d "$entry" ]; then
74
- echo "${prefix}${connector} ${name}/"
75
- build_tree "$entry" "$child_prefix" "$patterns"
76
- else
77
- echo "${prefix}${connector} ${name}"
78
- fi
79
- done
80
- }
81
-
82
- write_snapshot() {
83
- local project_name
84
- project_name=$(basename "$PWD")
85
- local patterns
86
- patterns=$(load_gitignore_patterns)
87
-
88
- mkdir -p "$(dirname "$OUTPUT_FILE")"
89
-
90
- {
91
- echo "# Project Snapshot: $project_name"
92
- echo ""
93
- echo "## Structure"
94
- echo ""
95
- echo '```'
96
- build_tree "." "" "$patterns"
97
- echo '```'
98
- echo ""
99
-
100
- if [ -f "package.json" ]; then
101
- echo "## package.json"
102
- echo ""
103
- echo '```json'
104
- cat package.json
105
- echo '```'
106
- echo ""
107
- fi
108
- } >"$OUTPUT_FILE"
109
- }
110
-
111
- main() {
112
- check_dependencies
113
-
114
- if [ "$NESTED" = false ]; then open_timeline; fi
115
-
116
- log_step "Snapshot"
117
- write_snapshot
118
- log_info "Written to $OUTPUT_FILE"
119
-
120
- # The whole frame goes to stderr, since the run writes its document to a file
121
- # and leaves stdout carrying nothing. Edges on stdout with the body on stderr
122
- # would capture as a frame with no body inside it.
123
- if [ "$NESTED" = false ]; then
124
- close_timeline
125
- # All six are declared to scope what `set_palette` assigns, so the four this
126
- # line never spells stay out of the globals a sourcing script reads.
127
- # shellcheck disable=SC2034
128
- local GREEN RED YELLOW WHITE GREY NC
129
- set_palette 2
130
- echo -e "\n${GREEN}✓ Snapshot complete${NC}" >&2
131
- fi
132
- }
133
-
134
- main "$@"
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -e
3
- set -o pipefail
4
-
5
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
- PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
7
-
8
- source "$PROJECT_ROOT/scripts/lib/ui.sh"
9
-
10
- check_dependencies() {
11
- command -v bun >/dev/null 2>&1 || log_error "bun is not installed"
12
- }
13
-
14
- main() {
15
- check_dependencies
16
-
17
- echo -e "${GREY}┌${NC}"
18
-
19
- echo -e "${GREY}├${NC} ${WHITE}Interactive dependency update${NC}"
20
- echo -e "${GREY}│${NC}"
21
- bun update --interactive
22
-
23
- log_step "Verifying project health"
24
- if [ -f "$PROJECT_ROOT/src/cli.ts" ]; then
25
- bun "$PROJECT_ROOT/src/cli.ts" gate run --nested
26
- log_info "All checks passed"
27
- else
28
- log_warn "Verification entry point not found, skipping."
29
- fi
30
-
31
- echo -e "${GREY}└${NC}\n"
32
- echo -e "${GREEN}✓ Update complete${NC}"
33
- }
34
-
35
- main "$@"