diff --git a/docs/VISION.md b/docs/VISION.md index 400ec2d..b605996 100644 --- a/docs/VISION.md +++ b/docs/VISION.md @@ -19,8 +19,8 @@ Designed to start as a personal homelab tool and grow into something shareable w - Automatic push-based sync to projects - Runtime dependency from projects back to this repo -- Bootstrapping new projects (`init-project.sh` comes in chunk 6) -- GitHub Copilot support (chunk 7) +- Bootstrapping new projects (`init-project.sh` — not yet built) +- GitHub Copilot support (not yet built) ## 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 = 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 @@ -56,7 +56,7 @@ Browse, edit, and configure AI development config through a proper product UI. - Hosting: self-hosted first, cloud-hosted option later - 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. diff --git a/scripts/deploy-manifest.sh b/scripts/deploy-manifest.sh index 6783b5f..4d66a7f 100644 --- a/scripts/deploy-manifest.sh +++ b/scripts/deploy-manifest.sh @@ -1,5 +1,5 @@ #!/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. # Format: "src:dest" @@ -21,7 +21,4 @@ DEPLOY_DIRS=( "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. diff --git a/tests/test-git-hooks-install.sh b/tests/test-git-hooks-install.sh index aea2f1a..8785bbd 100755 --- a/tests/test-git-hooks-install.sh +++ b/tests/test-git-hooks-install.sh @@ -32,7 +32,6 @@ cat > "$TEMP_REPO/scripts/deploy-manifest.sh" << 'EOF' DEPLOY_FILES=() DEPLOY_EXECUTABLES=() DEPLOY_DIRS=() -DEPLOY_SKILLS_SRC=".agents/skills" EOF # Copy the real install.sh and git-hooks into the temp repo diff --git a/tests/test-install.sh b/tests/test-install.sh index aa12082..24227c7 100755 --- a/tests/test-install.sh +++ b/tests/test-install.sh @@ -59,59 +59,6 @@ else fail "\$HOME/.agents/AGENTS.md — missing or differs from source" 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 "--- idempotency: second run state is correct ---" if HOME="$TEMP_HOME" bash "$REPO_ROOT/scripts/install.sh" > /dev/null 2>&1; then @@ -120,30 +67,6 @@ else fail "second run failed" 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 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" diff --git a/tests/test-instructions-and-docs.sh b/tests/test-instructions-and-docs.sh index fd2ae02..141359c 100755 --- a/tests/test-instructions-and-docs.sh +++ b/tests/test-instructions-and-docs.sh @@ -284,7 +284,7 @@ echo "──────────────────────── echo "MANUAL TEST PLAN (run in a fresh Claude session)" 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 " INCONCLUSIVE: 4 (no remote configured in test environment)" echo ""