chore: remove stale chunk/skills references from vision, scripts, and tests

## Why
The repo moved from a chunk-based delivery model with `.agents/skills/`
as the canonical skill source to a plugin model. Several files retained
references to the old model that were either dead code or misleading
framing.

## Impact
- `tests/test-install.sh`: dead `.agents/skills/` test blocks removed;
  suite now tests only what `install.sh` actually deploys
- `scripts/deploy-manifest.sh`: `DEPLOY_SKILLS_SRC` variable and stale
  `sync.sh (Chunk 6)` comment removed
- `tests/test-git-hooks-install.sh`: fixture stub no longer declares
  the removed `DEPLOY_SKILLS_SRC` variable
- `docs/VISION.md`: chunk delivery framing replaced with plugin model
  language throughout; manual test plan date updated
- `tests/test-instructions-and-docs.sh`: stale test plan date flagged
  as pre-refactor so readers know a re-run is needed

Refs: #15

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-28 20:04:45 +00:00
parent 3b5b1b5199
commit 69f395f0f6
5 changed files with 7 additions and 88 deletions

View File

@@ -19,8 +19,8 @@ Designed to start as a personal homelab tool and grow into something shareable w
- Automatic push-based sync to projects - Automatic push-based sync to projects
- Runtime dependency from projects back to this repo - Runtime dependency from projects back to this repo
- Bootstrapping new projects (`init-project.sh` comes in chunk 6) - Bootstrapping new projects (`init-project.sh` — not yet built)
- GitHub Copilot support (chunk 7) - GitHub Copilot support (not yet built)
## Current architecture ## Current architecture
@@ -30,9 +30,9 @@ See `docs/spec/architecture.md` for the deployed directory structure, content de
V1 is "ready to develop" — not a finished product. It means this repo is structured, Claude Code is wired up to it, and there is enough initial content to start building incrementally. V1 is "ready to develop" — not a finished product. It means this repo is structured, Claude Code is wired up to it, and there is enough initial content to start building incrementally.
**V1 = Chunk 1 complete — ✅ done.** **V1 = core install pipeline complete — ✅ done.**
Everything from chunk 2 onward is content and tooling built on top of that foundation. All content and tooling is built incrementally on top of that foundation via plugins.
## Long-term: Management Application ## Long-term: Management Application
@@ -56,7 +56,7 @@ Browse, edit, and configure AI development config through a proper product UI.
- Hosting: self-hosted first, cloud-hosted option later - Hosting: self-hosted first, cloud-hosted option later
- Users: solo-first, multi-user-ready data model from day one - Users: solo-first, multi-user-ready data model from day one
**Start trigger:** after Chunk 6 of this repo (`sync.sh` + `init-project.sh`). Full content model and sync tooling must be stable before building a UI over them. **Start trigger:** when the plugin content model and sync tooling are stable. Full content model must be stable before building a UI over it.
**Mobile/desktop (Phase 3):** React → React Native for mobile; Tauri to wrap the web app for desktop. **Mobile/desktop (Phase 3):** React → React Native for mobile; Tauri to wrap the web app for desktop.

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Deployment manifest — sourced by install.sh and sync.sh (Chunk 6). # Deployment manifest — sourced by install.sh.
# All paths: src relative to REPO_ROOT, dest relative to HOME. # All paths: src relative to REPO_ROOT, dest relative to HOME.
# Format: "src:dest" # Format: "src:dest"
@@ -21,7 +21,4 @@ DEPLOY_DIRS=(
"core:.claude/core" "core:.claude/core"
) )
# Skills — merged per-skill into canonical location (parent not wiped, user skills preserved)
DEPLOY_SKILLS_SRC=".agents/skills"
# Provider skill adapters are declared in providers/*/provider-manifest.sh, not here. # Provider skill adapters are declared in providers/*/provider-manifest.sh, not here.

View File

@@ -32,7 +32,6 @@ cat > "$TEMP_REPO/scripts/deploy-manifest.sh" << 'EOF'
DEPLOY_FILES=() DEPLOY_FILES=()
DEPLOY_EXECUTABLES=() DEPLOY_EXECUTABLES=()
DEPLOY_DIRS=() DEPLOY_DIRS=()
DEPLOY_SKILLS_SRC=".agents/skills"
EOF EOF
# Copy the real install.sh and git-hooks into the temp repo # Copy the real install.sh and git-hooks into the temp repo

View File

@@ -59,59 +59,6 @@ else
fail "\$HOME/.agents/AGENTS.md — missing or differs from source" fail "\$HOME/.agents/AGENTS.md — missing or differs from source"
fi fi
if [[ -d "$REPO_ROOT/.agents/skills" ]]; then
echo ""
echo "--- skills deployed to ~/.agents/skills/ ---"
while IFS= read -r -d '' src_skill; do
skill_name="$(basename "$src_skill")"
dest_skill="$TEMP_HOME/.agents/skills/$skill_name"
if [[ -d "$dest_skill" ]]; then
pass "$skill_name deployed to ~/.agents/skills/"
else
fail "$skill_name missing from ~/.agents/skills/"
fi
done < <(find "$REPO_ROOT/.agents/skills" -mindepth 1 -maxdepth 1 -type d -print0)
echo ""
echo "--- skill files match source ---"
while IFS= read -r -d '' src; do
rel="${src#"$REPO_ROOT/.agents/skills/"}"
dest="$TEMP_HOME/.agents/skills/$rel"
if diff -q "$src" "$dest" > /dev/null 2>&1; then
pass "skills/$rel matches source"
else
fail "skills/$rel — missing or differs from source"
fi
done < <(find "$REPO_ROOT/.agents/skills" -type f -print0)
echo ""
echo "--- skills correctly replaced on second install (no double-nesting) ---"
first_skill="$(find "$REPO_ROOT/.agents/skills" -mindepth 1 -maxdepth 1 -type d | head -1)"
if [[ -n "$first_skill" ]]; then
skill_name="$(basename "$first_skill")"
nested="$TEMP_HOME/.agents/skills/$skill_name/$skill_name"
if [[ -d "$nested" ]]; then
fail "$skill_name/$skill_name exists — skill was nested instead of replaced"
else
pass "$skill_name not double-nested after second install"
fi
fi
fi
echo ""
echo "--- user skills preserved after install (merge, not wipe) ---"
TEMP_HOME2="$(mktemp -d)"
trap 'rm -rf "$TEMP_HOME2"' EXIT
# Pre-create a user skill not in the source
mkdir -p "$TEMP_HOME2/.agents/skills/my-custom-skill"
echo "custom" > "$TEMP_HOME2/.agents/skills/my-custom-skill/SKILL.md"
HOME="$TEMP_HOME2" bash "$REPO_ROOT/scripts/install.sh" > /dev/null
if [[ -f "$TEMP_HOME2/.agents/skills/my-custom-skill/SKILL.md" ]]; then
pass "pre-existing user skill preserved after install"
else
fail "pre-existing user skill was wiped by install"
fi
echo "" echo ""
echo "--- idempotency: second run state is correct ---" echo "--- idempotency: second run state is correct ---"
if HOME="$TEMP_HOME" bash "$REPO_ROOT/scripts/install.sh" > /dev/null 2>&1; then if HOME="$TEMP_HOME" bash "$REPO_ROOT/scripts/install.sh" > /dev/null 2>&1; then
@@ -120,30 +67,6 @@ else
fail "second run failed" fail "second run failed"
fi fi
if [[ -d "$REPO_ROOT/.agents/skills" ]]; then
# skill files still match source after second run
while IFS= read -r -d '' src; do
rel="${src#"$REPO_ROOT/.agents/skills/"}"
dest="$TEMP_HOME/.agents/skills/$rel"
if diff -q "$src" "$dest" > /dev/null 2>&1; then
pass "idempotent: skills/$rel correct after second install"
else
fail "idempotent: skills/$rel corrupted after second install"
fi
done < <(find "$REPO_ROOT/.agents/skills" -type f -print0)
# no double-nesting after second run
while IFS= read -r -d '' skill_dir; do
skill_name="$(basename "$skill_dir")"
nested="$TEMP_HOME/.agents/skills/$skill_name/$skill_name"
if [[ -d "$nested" ]]; then
fail "idempotent: $skill_name double-nested after second install"
else
pass "idempotent: $skill_name not double-nested after second install"
fi
done < <(find "$REPO_ROOT/.agents/skills" -mindepth 1 -maxdepth 1 -type d -print0)
fi
# AGENTS.md still correct after second run # AGENTS.md still correct after second run
if diff -q "$REPO_ROOT/core/AGENTS.md" "$TEMP_HOME/.agents/AGENTS.md" > /dev/null 2>&1; then if diff -q "$REPO_ROOT/core/AGENTS.md" "$TEMP_HOME/.agents/AGENTS.md" > /dev/null 2>&1; then
pass "idempotent: ~/.agents/AGENTS.md correct after second install" pass "idempotent: ~/.agents/AGENTS.md correct after second install"

View File

@@ -284,7 +284,7 @@ echo "────────────────────────
echo "MANUAL TEST PLAN (run in a fresh Claude session)" echo "MANUAL TEST PLAN (run in a fresh Claude session)"
echo "─────────────────────────────────────────────────────" echo "─────────────────────────────────────────────────────"
echo "" echo ""
echo "Results last run: 2026-05-17 (multiple rounds)" echo "Results last run: 2026-06-28 (pre-plugin-refactor; re-run needed)"
echo " PASS: 1, 2, 3, 5, 6, 7, 8, 9" echo " PASS: 1, 2, 3, 5, 6, 7, 8, 9"
echo " INCONCLUSIVE: 4 (no remote configured in test environment)" echo " INCONCLUSIVE: 4 (no remote configured in test environment)"
echo "" echo ""