@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.
- package/claude/.claude-plugin/plugin.json +1 -1
- package/claude/skills/auto-ship/REQUIREMENT.md +1 -0
- package/claude/skills/auto-ship/SKILL.md +5 -8
- package/claude/skills/auto-ship/references/failure-recovery.md +0 -1
- package/claude/skills/auto-ship/references/ui-checklist.md +21 -0
- package/claude/skills/git-pr/references/evidence.md +7 -7
- package/claude/skills/git-ship/REQUIREMENT.md +1 -1
- package/claude/skills/git-ship/SKILL.md +1 -1
- package/claude/skills/review-craft/references/ui.md +1 -2
- package/claude/skills/review-pr/SKILL.md +1 -1
- package/claude/skills/ui-checklist/SKILL.md +1 -18
- package/docs/agents/gate.md +1 -1
- package/docs/agents/hooks.md +2 -0
- package/docs/agents/install-and-sync.md +2 -2
- package/docs/agents/pr-evidence.md +26 -25
- package/docs/agents/tasks-validate.md +3 -3
- package/docs/target/migrations.md +1 -1
- package/docs/workflow/ai-workflow.md +2 -1
- package/docs/workflow/parallel-features.md +3 -3
- package/package.json +3 -4
- package/scripts/lib/sandbox-path.sh +1 -1
- package/src/commands/pr.ts +16 -14
- package/src/gate/stages.ts +10 -2
- package/src/tasks/validate.ts +37 -27
- package/standards/tasks.md +1 -1
- package/tooling/base/configs/.husky/post-merge +30 -77
- package/tooling/base/configs/.husky/post-rewrite +3 -3
- package/tooling/base/reference.md +1 -1
- package/scripts/core/clean.sh +0 -36
- package/scripts/core/regen-agent-fixture.sh +0 -235
- package/scripts/core/regen-claude-copies.sh +0 -10
- package/scripts/core/regen-indexes.sh +0 -10
- package/scripts/core/snapshot.sh +0 -134
- package/scripts/core/update.sh +0 -35
package/scripts/core/snapshot.sh
DELETED
|
@@ -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 "$@"
|
package/scripts/core/update.sh
DELETED
|
@@ -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 "$@"
|