minimal-vibe-coding-kit 0.3.0 → 0.4.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 (117) hide show
  1. package/.agents/skills/agentshield-security-review/SKILL.md +6 -6
  2. package/.agents/skills/agentshield-security-review/references/native-install.md +10 -10
  3. package/.agents/skills/agentshield-security-review/references/report-template.md +1 -1
  4. package/.agents/skills/agentshield-security-review/scripts/agentshield_repo_probe.py +3 -3
  5. package/.agents/skills/autoresearch-coding/README.md +1 -1
  6. package/.agents/skills/autoresearch-coding/SKILL.md +4 -4
  7. package/.agents/skills/daily-workflow-curator/SKILL.md +3 -3
  8. package/.agents/skills/parallel-analysis/SKILL.md +160 -0
  9. package/.agents/skills/path-sensitive-shell-safety/SKILL.md +68 -0
  10. package/.agents/skills/path-sensitive-shell-safety/references/workflow.md +127 -0
  11. package/.agents/skills/vibekit-init/SKILL.md +6 -6
  12. package/.claude/commands/vibe-finalize.md +1 -1
  13. package/.claude/rules/security.md +2 -0
  14. package/.claude/rules/tooling.md +1 -1
  15. package/.claude/skills/agentshield-security-review/SKILL.md +6 -6
  16. package/.claude/skills/agentshield-security-review/references/native-install.md +10 -10
  17. package/.claude/skills/agentshield-security-review/references/report-template.md +1 -1
  18. package/.claude/skills/agentshield-security-review/scripts/agentshield_repo_probe.py +3 -3
  19. package/.claude/skills/autoresearch-coding/README.md +1 -1
  20. package/.claude/skills/autoresearch-coding/SKILL.md +4 -4
  21. package/.claude/skills/daily-workflow-curator/SKILL.md +3 -3
  22. package/.claude/skills/parallel-analysis/SKILL.md +160 -0
  23. package/.claude/skills/path-sensitive-shell-safety/SKILL.md +68 -0
  24. package/.claude/skills/path-sensitive-shell-safety/references/workflow.md +127 -0
  25. package/.claude/skills/vibekit-init/SKILL.md +6 -6
  26. package/.codex-plugin/plugin.json +2 -2
  27. package/.cursor/commands/vibe-finalize.md +1 -1
  28. package/.cursor/rules/001-vibe-core.mdc +1 -1
  29. package/.cursor/rules/010-init.mdc +1 -1
  30. package/.cursor/rules/020-security-agentshield.mdc +2 -2
  31. package/.cursor/rules/030-autoresearch-loop.mdc +1 -1
  32. package/.cursor/skills/parallel-analysis/SKILL.md +160 -0
  33. package/.cursor/skills/path-sensitive-shell-safety/SKILL.md +68 -0
  34. package/.cursor/skills/path-sensitive-shell-safety/references/workflow.md +127 -0
  35. package/.vibekit/commands/vibe-finalize.md +3 -0
  36. package/{.vbkit-docs → .vibekit/docs}/AUTORESEARCH_LEDGER.md +3 -3
  37. package/{.vbkit-docs → .vibekit/docs}/BACKBONE_REFERENCE.md +1 -1
  38. package/{.vbkit-docs → .vibekit/docs}/INSTALL.md +16 -16
  39. package/{.vbkit-docs → .vibekit/docs}/RESEARCH_NOTES.md +1 -1
  40. package/{.vbkit-docs → .vibekit/docs}/SECURITY_MODEL.md +2 -2
  41. package/{.vbkit-docs → .vibekit/docs}/TOOLING_GUIDE.md +2 -2
  42. package/{.vbkit-docs → .vibekit/docs}/templates/CONTEXT_TEMPLATE.md +1 -1
  43. package/{.vbkit-docs → .vibekit/docs}/templates/PRD_TEMPLATE.md +1 -1
  44. package/{CLAUDE-template.md → .vibekit/init/CLAUDE-template.md} +1 -1
  45. package/{FIRST_PROMPT.md → .vibekit/init/FIRST_PROMPT.md} +6 -6
  46. package/{FIRST_TIME_INIT.md → .vibekit/init/FIRST_TIME_INIT.md} +14 -14
  47. package/{.vbkit-scripts → .vibekit/scripts}/agentshield-probe.mjs +1 -1
  48. package/{.vbkit-scripts → .vibekit/scripts}/daily-enhance.mjs +3 -3
  49. package/{.vbkit-scripts → .vibekit/scripts}/doctor.mjs +6 -6
  50. package/{.vbkit-scripts → .vibekit/scripts}/init-backbone.mjs +22 -22
  51. package/{.vbkit-scripts → .vibekit/scripts}/mvck.mjs +61 -25
  52. package/{.vbkit-scripts → .vibekit/scripts}/test-install.mjs +32 -18
  53. package/{.vbkit-scripts → .vibekit/scripts}/validate-kit.mjs +47 -31
  54. package/{.vbkit-scripts → .vibekit/scripts}/vibekit-finalize.mjs +7 -7
  55. package/{skills → .vibekit/skills}/agentshield-security-review/SKILL.md +6 -6
  56. package/{skills → .vibekit/skills}/agentshield-security-review/references/native-install.md +10 -10
  57. package/{skills → .vibekit/skills}/agentshield-security-review/references/report-template.md +1 -1
  58. package/{skills → .vibekit/skills}/agentshield-security-review/scripts/agentshield_repo_probe.py +3 -3
  59. package/{skills → .vibekit/skills}/autoresearch-coding/README.md +1 -1
  60. package/{skills → .vibekit/skills}/autoresearch-coding/SKILL.md +4 -4
  61. package/{skills → .vibekit/skills}/daily-workflow-curator/SKILL.md +3 -3
  62. package/.vibekit/skills/parallel-analysis/SKILL.md +160 -0
  63. package/.vibekit/skills/path-sensitive-shell-safety/SKILL.md +68 -0
  64. package/.vibekit/skills/path-sensitive-shell-safety/references/workflow.md +127 -0
  65. package/{skills → .vibekit/skills}/vibekit-init/SKILL.md +6 -6
  66. package/AGENTS.md +5 -2
  67. package/CHANGELOG.md +13 -2
  68. package/CONTRIBUTING.md +3 -3
  69. package/README.md +133 -394
  70. package/README.vi.md +135 -334
  71. package/backbone.yml +8 -7
  72. package/bin/mvck.js +1 -1
  73. package/bin/vibe-kit.js +1 -1
  74. package/install.ps1 +1 -1
  75. package/install.sh +5 -3
  76. package/package.json +22 -18
  77. package/.vbkit-commands/vibe-finalize.md +0 -3
  78. /package/{.vbkit-commands → .vibekit/commands}/autoresearch-coding.md +0 -0
  79. /package/{.vbkit-commands → .vibekit/commands}/council.md +0 -0
  80. /package/{.vbkit-commands → .vibekit/commands}/daily-enhance.md +0 -0
  81. /package/{.vbkit-commands → .vibekit/commands}/init-vibe.md +0 -0
  82. /package/{.vbkit-commands → .vibekit/commands}/security-scan.md +0 -0
  83. /package/{.vbkit-docs → .vibekit/docs}/backbone.schema.json +0 -0
  84. /package/{.vbkit-scripts → .vibekit/scripts}/pack-dry-run.mjs +0 -0
  85. /package/{skills → .vibekit/skills}/agentshield-security-review/agents/openai.yaml +0 -0
  86. /package/{skills → .vibekit/skills}/agentshield-security-review/references/review-checklist.md +0 -0
  87. /package/{skills → .vibekit/skills}/autoresearch-coding/references/experiment-contract.md +0 -0
  88. /package/{skills → .vibekit/skills}/autoresearch-coding/references/metric-extraction.md +0 -0
  89. /package/{skills → .vibekit/skills}/autoresearch-coding/references/result-ledger.md +0 -0
  90. /package/{skills → .vibekit/skills}/autoresearch-coding/scripts/log_result.py +0 -0
  91. /package/{skills → .vibekit/skills}/autoresearch-coding/scripts/run_logged.py +0 -0
  92. /package/{skills → .vibekit/skills}/clearthought/SKILL.md +0 -0
  93. /package/{skills → .vibekit/skills}/clearthought/examples/decision-framework.md +0 -0
  94. /package/{skills → .vibekit/skills}/clearthought/examples/metagame-examples.md +0 -0
  95. /package/{skills → .vibekit/skills}/clearthought/examples/sequential-thinking.md +0 -0
  96. /package/{skills → .vibekit/skills}/clearthought/references/output-schemas.md +0 -0
  97. /package/{skills → .vibekit/skills}/clearthought/references/parameter-reference.md +0 -0
  98. /package/{skills → .vibekit/skills}/coding-level/SKILL.md +0 -0
  99. /package/{skills → .vibekit/skills}/coding-level/references/level-0.md +0 -0
  100. /package/{skills → .vibekit/skills}/coding-level/references/level-1.md +0 -0
  101. /package/{skills → .vibekit/skills}/coding-level/references/level-2.md +0 -0
  102. /package/{skills → .vibekit/skills}/coding-level/references/level-3.md +0 -0
  103. /package/{skills → .vibekit/skills}/coding-level/references/level-4.md +0 -0
  104. /package/{skills → .vibekit/skills}/coding-level/references/level-5.md +0 -0
  105. /package/{skills → .vibekit/skills}/memento/SKILL.md +0 -0
  106. /package/{skills → .vibekit/skills}/reviewing-4p-priorities/SKILL.md +0 -0
  107. /package/{skills → .vibekit/skills}/reviewing-4p-priorities/examples.md +0 -0
  108. /package/{skills → .vibekit/skills}/sequential-thinking/SKILL.md +0 -0
  109. /package/{skills → .vibekit/skills}/sequential-thinking/examples/adaptive-depth.md +0 -0
  110. /package/{skills → .vibekit/skills}/sequential-thinking/examples/branching-exploration.md +0 -0
  111. /package/{skills → .vibekit/skills}/sequential-thinking/examples/linear-reasoning.md +0 -0
  112. /package/{skills → .vibekit/skills}/sequential-thinking/examples/revision-pattern.md +0 -0
  113. /package/{skills → .vibekit/skills}/sequential-thinking/references/output-schema.md +0 -0
  114. /package/{skills → .vibekit/skills}/sequential-thinking/references/parameters.md +0 -0
  115. /package/{skills → .vibekit/skills}/sequential-thinking/references/patterns.md +0 -0
  116. /package/{skills → .vibekit/skills}/visual-design-loop/SKILL.md +0 -0
  117. /package/{skills → .vibekit/skills}/visual-design-loop/agents/openai.yaml +0 -0
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: path-sensitive-shell-safety
3
+ description: Guardrail workflow for shell changes that use path variables, remote base directories, repo folders, checkout repair, or destructive filesystem commands such as rm, mv, cp, rsync, find -delete, git clean, or git reset.
4
+ argument-hint: "<script path, command, or safety review target>"
5
+ user-invocable: true
6
+ effort: medium
7
+ ---
8
+
9
+ # Path-Sensitive Shell Safety
10
+
11
+ Use this skill before editing or reviewing shell, deploy, installer, cleanup, or repair logic that builds filesystem paths from variables or touches remote repositories.
12
+
13
+ Common triggers:
14
+
15
+ - Path variables such as `remote_base`, `repo_dir`, `repo_folder`, `target_dir`, `backup_dir`, `worktree`, `site`, `app`, or user-entered folder names.
16
+ - Destructive or path-sensitive commands: `rm`, `mv`, `cp -a`, `rsync --delete`, `find -delete`, `docker volume rm`, `git clean`, `git reset`, checkout repair, clone replacement, or symlink-sensitive copy.
17
+ - Git sync that decides which branch or remote checkout will be deployed.
18
+
19
+ ## Safety objective
20
+
21
+ No empty, unset, broad, symlinked, or unintended path may reach a destructive command. Validate values before joining paths, validate the joined path before use, and validate containment immediately before the command.
22
+
23
+ ## Required workflow
24
+
25
+ 1. Identify the command with the highest blast radius.
26
+ 2. List every variable that contributes to its path or repository target.
27
+ 3. Classify each variable:
28
+ - trusted constant;
29
+ - config value;
30
+ - remote/server value;
31
+ - user/operator input;
32
+ - derived path.
33
+ 4. Validate raw inputs before joining:
34
+ - required and non-empty;
35
+ - expected shape: absolute base path or safe single folder segment;
36
+ - no traversal, newlines, glob metacharacters, leading option dash, or control characters;
37
+ - explicit allowlist for server roots when possible.
38
+ 5. Join paths with quoted expansions only. Do not use `eval`.
39
+ 6. Canonicalize existing paths with physical resolution (`pwd -P` or `realpath`) before destructive work.
40
+ 7. Assert containment:
41
+ - target is inside the approved base;
42
+ - target is not `/`, `.`, `..`, `$HOME`, the base root itself, or another broad system directory;
43
+ - target is not a symlink unless the operation explicitly supports symlinks.
44
+ 8. Put the final guard directly next to the dangerous command.
45
+ 9. Use command terminators and quoting: `-- "$path"` where supported.
46
+ 10. For Git sync, verify expected origin, selected branch policy, fetch success, clean worktree, fast-forward state, and final `HEAD == origin/<branch>` before build/deploy.
47
+ 11. Run the repo validation command and AgentShield probe when this changes agent surfaces or automation rules.
48
+
49
+ ## Required outcomes
50
+
51
+ - A blank branch may follow the documented default-branch fallback policy.
52
+ - An explicit branch must fail if missing; never silently deploy another branch.
53
+ - A blank folder/base value must fail before any `rm`, `mv`, `cp`, `rsync`, `find`, Docker, or Git cleanup command runs.
54
+ - A repair flow may move an unusable checkout to a timestamped backup only after a verified replacement exists.
55
+ - No automatic cleanup should delete backups, locks, runtime data, uploads, volumes, databases, or environment files without separate explicit confirmation.
56
+
57
+ ## Review priority
58
+
59
+ Use `reviewing-4p-priorities` if triage is needed:
60
+
61
+ - P0: unsafe path command already caused data loss or can expose/delete secrets in the active environment.
62
+ - P1: unchecked empty/broad variable can reach destructive commands in deploy/repair/install paths.
63
+ - P2: guard exists but misses edge cases such as symlinks, traversal, explicit branch fallback, or wrong origin.
64
+ - P3/P4: documentation clarity or minor naming improvements after the safety invariant is already enforced.
65
+
66
+ ## Reference
67
+
68
+ Use `references/workflow.md` for copy-ready guard patterns and review checklist.
@@ -0,0 +1,127 @@
1
+ # Path-Sensitive Shell Safety Reference
2
+
3
+ This reference gives reusable guard patterns for shell scripts. Adapt names and allowlists to the repo, but keep the invariant: validate raw input, validate the joined path, then guard immediately before the dangerous command.
4
+
5
+ ## Baseline guard functions
6
+
7
+ ```bash
8
+ die() {
9
+ printf 'ERROR: %s\n' "$*" >&2
10
+ exit 1
11
+ }
12
+
13
+ require_nonempty() {
14
+ local name="${1:?missing name}"
15
+ local value="${2-}"
16
+ [[ -n "$value" ]] || die "$name is required"
17
+ [[ "$value" != *$'\n'* && "$value" != *$'\r'* ]] || die "$name contains a newline"
18
+ }
19
+
20
+ validate_abs_base_path() {
21
+ local name="${1:?missing name}"
22
+ local value="${2-}"
23
+ require_nonempty "$name" "$value"
24
+ [[ "$value" == /* ]] || die "$name must be an absolute path: $value"
25
+ [[ "$value" != "/" && "$value" != "." && "$value" != ".." ]] || die "$name is too broad: $value"
26
+ [[ "$value" != *"/../"* && "$value" != *"/./"* && "$value" != *"//"* ]] || die "$name contains unsafe traversal: $value"
27
+ case "$value" in
28
+ /bin|/boot|/dev|/etc|/home|/lib|/lib64|/opt|/private|/root|/sbin|/srv|/sys|/tmp|/usr|/var)
29
+ die "$name points at a broad system directory: $value"
30
+ ;;
31
+ esac
32
+ }
33
+
34
+ validate_folder_segment() {
35
+ local name="${1:?missing name}"
36
+ local value="${2-}"
37
+ require_nonempty "$name" "$value"
38
+ [[ "$value" != -* ]] || die "$name must not start with '-': $value"
39
+ [[ "$value" != "." && "$value" != ".." ]] || die "$name is unsafe: $value"
40
+ [[ "$value" != */* && "$value" != *\\* ]] || die "$name must be one folder segment: $value"
41
+ [[ "$value" =~ ^[A-Za-z0-9._#@+=:-]+$ ]] || die "$name contains unsupported characters: $value"
42
+ }
43
+
44
+ join_child_path() {
45
+ local base="${1:?missing base}"
46
+ local child="${2:?missing child}"
47
+ printf '%s/%s\n' "${base%/}" "$child"
48
+ }
49
+ ```
50
+
51
+ ## Containment guard
52
+
53
+ ```bash
54
+ canonical_existing_dir() {
55
+ local path_value="${1:?missing path}"
56
+ [[ -d "$path_value" ]] || die "not a directory: $path_value"
57
+ [[ ! -L "$path_value" ]] || die "refusing symlink directory: $path_value"
58
+ (cd -P -- "$path_value" && pwd) || die "cannot resolve directory: $path_value"
59
+ }
60
+
61
+ assert_child_under_parent() {
62
+ local parent="${1:?missing parent}"
63
+ local child="${2:?missing child}"
64
+ [[ "$child" != "$parent" ]] || die "refusing to operate on parent directory itself: $child"
65
+ case "$child" in
66
+ "$parent"/*) ;;
67
+ *) die "path escapes parent: child=$child parent=$parent" ;;
68
+ esac
69
+ }
70
+ ```
71
+
72
+ ## Safer remove wrapper
73
+
74
+ Use a wrapper instead of inline deletion when a path contains variables.
75
+
76
+ ```bash
77
+ safe_rm_rf_dir() {
78
+ local label="${1:?missing label}"
79
+ local target="${2-}"
80
+ local allowed_parent="${3-}"
81
+
82
+ validate_abs_base_path "$label target" "$target"
83
+ validate_abs_base_path "$label allowed parent" "$allowed_parent"
84
+
85
+ [[ -d "$target" ]] || die "$label target is not an existing directory: $target"
86
+ [[ ! -L "$target" ]] || die "$label target is a symlink: $target"
87
+
88
+ local parent_real
89
+ parent_real="$(canonical_existing_dir "$allowed_parent")"
90
+
91
+ local target_real
92
+ target_real="$(canonical_existing_dir "$target")"
93
+
94
+ assert_child_under_parent "$parent_real" "$target_real"
95
+ rm -rf -- "$target_real"
96
+ }
97
+ ```
98
+
99
+ Never call the wrapper with a broad parent such as `/`, `/opt`, `/var`, `/tmp`, or `$HOME`. Use the narrowest app-owned parent.
100
+
101
+ ## Git sync guard checklist
102
+
103
+ - Validate the checkout directory is inside the approved app base.
104
+ - Validate the origin URL or host matches the expected repository.
105
+ - Fetch with bounded timeout and non-interactive credentials.
106
+ - Explicit branch:
107
+ - require the exact remote branch;
108
+ - fail with an actionable message if it is missing.
109
+ - Blank branch:
110
+ - current valid upstream;
111
+ - remote default branch;
112
+ - `main`;
113
+ - `master`.
114
+ - Refuse dirty, local-ahead, or diverged worktrees unless the operator chooses a guided repair command.
115
+ - After sync, verify `git rev-parse HEAD` equals `git rev-parse "origin/<branch>"`.
116
+ - Build or deploy only after the equality check passes.
117
+
118
+ ## Review checklist
119
+
120
+ - Are all path variables checked with `[[ -n "$value" ]]` or a stronger helper before use?
121
+ - Are folder names validated as segments before joining?
122
+ - Is the final path canonicalized or otherwise proven inside the base?
123
+ - Is the destructive command adjacent to its guard?
124
+ - Does the command use quoted expansions and `--` where available?
125
+ - Does the code fail closed for missing explicit branches?
126
+ - Does repair preserve runtime data and keep backups instead of deleting them?
127
+ - Does validation cover empty values, traversal, symlink, wrong origin, dirty checkout, branch with `#`, and missing branch?
@@ -11,15 +11,15 @@ Initialize the kit safely.
11
11
 
12
12
  ## Required behavior
13
13
 
14
- 1. Print the requirements checklist from `FIRST_TIME_INIT.md`.
14
+ 1. Print the requirements checklist from `.vibekit/init/FIRST_TIME_INIT.md`.
15
15
  2. Run or emulate detection, including repo-specific conventions, project mode, and PRD presence:
16
16
 
17
17
  ```bash
18
- node .vbkit-scripts/init-backbone.mjs . --propose
18
+ node .vibekit/scripts/init-backbone.mjs . --propose
19
19
  ```
20
20
 
21
21
  3. Run the project-understanding step below.
22
- 4. Propose a unified diff for `backbone.yml`, its `conventions` rules, managed blocks, and any new `.vbkit-docs/PRD.md`.
22
+ 4. Propose a unified diff for `backbone.yml`, its `conventions` rules, managed blocks, and any new `.vibekit/docs/PRD.md`.
23
23
  5. Ask: `Apply this proposed backbone and convention rules? Reply yes, edit, or abort.`
24
24
  6. Write only after explicit `yes`.
25
25
  7. Validate after writing.
@@ -29,9 +29,9 @@ node .vbkit-scripts/init-backbone.mjs . --propose
29
29
  Detection reports `project.mode` (`greenfield` = no source yet, `brownfield` = existing code) and whether a PRD exists.
30
30
 
31
31
  - Always offer a short interview, regardless of whether docs already exist: what the project is and who it is for, the core problem and primary focus now, what success looks like, key constraints/non-goals, and (brownfield) which area to improve first.
32
- - If no PRD is found, propose creating `.vbkit-docs/PRD.md` from `.vbkit-docs/templates/PRD_TEMPLATE.md` using the answers, and set `project.prd` to that path.
32
+ - If no PRD is found, propose creating `.vibekit/docs/PRD.md` from `.vibekit/docs/templates/PRD_TEMPLATE.md` using the answers, and set `project.prd` to that path.
33
33
  - If a PRD exists, read it, link it in `project.prd`, and offer to refresh it without overwriting unapproved content.
34
- - Keep the PRD short; it captures intent, not a full spec. Record domain terms in `.vbkit-docs/CONTEXT.md` (scaffold from `.vbkit-docs/templates/CONTEXT_TEMPLATE.md`) and link it in `project.context`.
34
+ - Keep the PRD short; it captures intent, not a full spec. Record domain terms in `.vibekit/docs/CONTEXT.md` (scaffold from `.vibekit/docs/templates/CONTEXT_TEMPLATE.md`) and link it in `project.context`.
35
35
 
36
36
  ## Convention detection
37
37
 
@@ -49,4 +49,4 @@ Detection reports `project.mode` (`greenfield` = no source yet, `brownfield` = e
49
49
 
50
50
  ## Completion
51
51
 
52
- Report initialized status, validation command, validation result, PRD path, and next recommended skill. Once the user confirms setup is complete, offer graduation (`node .vbkit-scripts/vibekit-finalize.mjs . --propose`) to move one-time bootstrap files into the cleanup folder.
52
+ Report initialized status, validation command, validation result, PRD path, and next recommended skill. Once the user confirms setup is complete, offer graduation (`node .vibekit/scripts/vibekit-finalize.mjs . --propose`) to move one-time bootstrap files into the cleanup folder.
package/AGENTS.md CHANGED
@@ -8,7 +8,7 @@ Shared instructions for Claude, Cursor, Codex, and other coding agents.
8
8
  ### Source of truth
9
9
 
10
10
  - Read `backbone.yml` before changing code.
11
- - If `meta.template_status` is `uninitialized`, follow `FIRST_TIME_INIT.md` and wait for approval before writing.
11
+ - If `meta.template_status` is `uninitialized`, follow `.vibekit/init/FIRST_TIME_INIT.md` and wait for approval before writing.
12
12
  - After init, follow the `conventions` rules in `backbone.yml`; ask before changing broad project patterns.
13
13
  - Prefer concise root instructions. Put long procedures in skills and docs.
14
14
 
@@ -33,13 +33,16 @@ Track every loop in `/tmp/design-{project_slug}.md`. Each loop entry must includ
33
33
  - Never print full secrets.
34
34
  - Do not run untrusted hooks, MCP servers, deploy scripts, package lifecycle scripts, migrations, or destructive shell commands just to inspect a repo.
35
35
  - Do not modify protected paths from `backbone.yml` without explicit approval.
36
- - If a task changes agent surfaces (`CLAUDE.md`, `AGENTS.md`, `.claude/**`, `.cursor/**`, `.agents/**`, `.codex-plugin/**`, `skills/**`, `.vbkit-commands/**`, `.vbkit-scripts/**`, hooks, MCP config), run the AgentShield probe or explain why it was skipped.
36
+ - Before editing or approving shell/deploy/installer/repair logic that uses path variables or destructive commands (`rm`, `mv`, `cp -a`, `rsync --delete`, `find -delete`, `git clean`, checkout replacement), use `path-sensitive-shell-safety` and prove base/folder/repo values are non-empty, contained, quoted, and not broad system paths.
37
+ - If a task changes agent surfaces (`CLAUDE.md`, `AGENTS.md`, `.claude/**`, `.cursor/**`, `.agents/**`, `.codex-plugin/**`, `.vibekit/skills/**`, `.vibekit/commands/**`, `.vibekit/scripts/**`, hooks, MCP config), run the AgentShield probe or explain why it was skipped.
37
38
 
38
39
  ### Skills to prefer
39
40
 
40
41
  - `vibekit-init`: first-time init and repair.
42
+ - `parallel-analysis`: fan out 2-5 read-only analysis lanes for repo-wide questions, large diff reviews, or consistency audits, then merge with a verification pass.
41
43
  - `autoresearch-coding`: metric-driven experiment loop.
42
44
  - `agentshield-security-review`: agent-surface security review.
45
+ - `path-sensitive-shell-safety`: validate remote base paths, repo folders, branch sync, and destructive shell commands before edits land.
43
46
  - `daily-workflow-curator`: daily proposal for improving rules, skills, workflows, and docs.
44
47
  - `visual-design-loop`: screenshot-driven UI polish loop.
45
48
 
package/CHANGELOG.md CHANGED
@@ -1,6 +1,17 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 0.4.0 — 2026-07-16
4
+
5
+ - Trimmed the end-user install payload: `mvck install`/`update` no longer copy kit-maintainer files (`test-install.mjs`, `pack-dry-run.mjs`, `.vibekit/docs/RESEARCH_NOTES.md`, `.vibekit/docs/AUTORESEARCH_LEDGER.md`); `validate-kit` requires them only in the kit source repo.
6
+ - `mvck install`/`update` now reject unknown `--profile` values instead of silently installing shared files only.
7
+ - `install.sh` no longer misreads a leading flag as the target directory.
8
+ - Fixed stale pre-0.4 path references: `.codex-plugin/plugin.json` now points at `./.vibekit/skills/` (version synced to the kit), the AgentShield probe scans `.vibekit/skills`/`.claude/skills`/`.cursor/skills`, and autoresearch/agentshield skill docs use `.vibekit/skills` in editable-path examples.
9
+ - Added `parallel-analysis` to the AGENTS.md "Skills to prefer" list.
10
+ - Broadened CI PR path filters to cover `install.sh`, `install.ps1`, `.vibekit/init/**`, and `.vibekit/docs/**`.
11
+ - Rewrote `README.md` and `README.vi.md`: short Quick Start, end-user install topology, day-to-day guide, full commands/skills tables (now including `/vibe-finalize` and `parallel-analysis`), and an Advanced section; version badge synced to the package version.
12
+
13
+ - BREAKING: consolidated all kit-owned files into a single `.vibekit/` folder — `.vbkit-scripts/` -> `.vibekit/scripts/`, `.vbkit-commands/` -> `.vibekit/commands/`, `.vbkit-docs/` -> `.vibekit/docs/`, `skills/` -> `.vibekit/skills/`, and one-time onboarding files (`FIRST_TIME_INIT.md`, `FIRST_PROMPT.md`, `CLAUDE-template.md`, `PUSH_TO_GITHUB.md`) -> `.vibekit/init/`. User repos now get one kit folder plus the harness surfaces (`.claude/`, `.cursor/`, `.agents/`, `.codex/`, `.codex-plugin/`) and root entrypoints (`backbone.yml`, `AGENTS.md`, `CLAUDE.md`). `mvck install`/`update` print an advisory legacy-layout note (never auto-delete) when pre-0.4 paths are found.
14
+ - Added `parallel-analysis` skill (shared + Claude/Cursor/Codex mirrors): fan out 2-5 read-only analysis lanes via Cursor CLI Composer (recommended), Claude subagents, or Codex CLI, then merge and verify findings; first use asks for the provider/model once and persists it to `.vibekit/parallel-analysis.json`.
4
15
 
5
16
  - Added `memento` skill (cross-session `MEMENTO.md` working memory) across shared, Claude, Codex, and Cursor surfaces.
6
17
  - Added `coding-level` skill (explanation register 0=ELI5 … 5=expert peer, with per-level reference personas) across shared, Claude, Codex, and Cursor surfaces.
@@ -11,7 +22,7 @@
11
22
  - Fixed `mvck init|validate|daily` delegation so flags are preserved when target is omitted.
12
23
  - Added install/idempotency tests with temporary clean and existing repos.
13
24
  - Added `mvck doctor` with optional `VIBE_REPORT.md` generation.
14
- - Added dependency-free `backbone.yml` schema validation and `.vbkit-docs/backbone.schema.json`.
25
+ - Added dependency-free `backbone.yml` schema validation and `.vibekit/docs/backbone.schema.json`.
15
26
  - Added a portable Node wrapper for the AgentShield probe.
16
27
  - Added syntax checks, `npm test`, CI Node 18/20/22 matrix, and package dry-run verification.
17
28
  - Added release safety docs and Dependabot config.
package/CONTRIBUTING.md CHANGED
@@ -15,10 +15,10 @@ npm run pack:dry-run
15
15
  ## Change guidelines
16
16
 
17
17
  - Preserve existing project files during install; prefer managed blocks for shared instructions.
18
- - Keep root instructions concise and move long procedures into `skills/` or `.vbkit-docs/`.
18
+ - Keep root instructions concise and move long procedures into `.vibekit/skills/` or `.vibekit/docs/`.
19
19
  - Do not add package lifecycle scripts, hooks, MCP servers, migrations, or deploy steps that run during install.
20
- - Update `.vbkit-docs/backbone.schema.json` and `.vbkit-scripts/validate-kit.mjs` together when `backbone.yml` changes.
21
- - Add an install/idempotency test when changing `.vbkit-scripts/mvck.mjs`.
20
+ - Update `.vibekit/docs/backbone.schema.json` and `.vibekit/scripts/validate-kit.mjs` together when `backbone.yml` changes.
21
+ - Add an install/idempotency test when changing `.vibekit/scripts/mvck.mjs`.
22
22
 
23
23
  ## Pull request checklist
24
24