@ngocsangairvds/vsaf 3.0.5 → 3.0.6

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.
@@ -22,7 +22,7 @@ Run from the project root. This parses all source files, builds the knowledge gr
22
22
  | `--force` | Force full re-index even if up to date |
23
23
  | `--embeddings` | Enable embedding generation for semantic search (off by default) |
24
24
 
25
- **When to run:** First time in a project, after major code changes, or when `gitnexus://repo/{name}/context` reports the index is stale. In Claude Code, a PostToolUse hook runs `analyze` automatically after `git commit` and `git merge`, preserving embeddings if previously generated.
25
+ **When to run:** First time in a project, after major code changes, or when `gitnexus://repo/{name}/context` reports the index is stale. Re-run `npx gitnexus analyze` manually after commits/merges when needed.
26
26
 
27
27
  ### status — Check index freshness
28
28
 
package/README.md CHANGED
@@ -67,7 +67,7 @@ first 30 days.
67
67
  ```
68
68
  .
69
69
  ├── .claude/
70
- │ ├── settings.json # Local AI settings (hook policy)
70
+ │ ├── settings.json # Local AI settings
71
71
  │ └── skills/ # VSAF + BMAD + GitNexus skills
72
72
  ├── _bmad/ # BMAD agent workspace
73
73
  ├── _bmad-output/ # BMAD generated artifacts (PRDs, arch docs)
@@ -91,13 +91,14 @@ Run `npx @ngocsangairvds/vsaf@latest --help` for the full list. Highlights:
91
91
  | `vsaf index` | Re-index codebase (GitNexus) — run after every merge |
92
92
  | `vsaf review` | 2-layer review coordinator |
93
93
  | `vsaf status` | Show status of all installed tools |
94
- | `vsaf mine` | Extract decisions from conversations into MemPalace |
94
+ | `vsaf mine` | Extract decisions into MemPalace (weekly + after major decisions) |
95
95
 
96
96
  ## Workflow
97
97
 
98
98
  Every feature follows an **8-step cycle**: scope → plan → impact analysis →
99
99
  brainstorm → TDD execute → 2-layer review → push.
100
- Bug fixes ("Quick Flow") skip planning steps and go straight to brainstorm.
100
+ Bug fixes ("Quick Flow") skip BMAD planning docs, but still require
101
+ `gitnexus_impact` before editing symbols and `gitnexus_detect_changes` before commit.
101
102
 
102
103
  See [1-setup-guide.md § Your First Project](docs/onboarding/1-setup-guide.md#5-your-first-project--a-walkthrough)
103
104
  for a walkthrough, or [2-workflow-guide.md § JWT Demo](docs/onboarding/2-workflow-guide.md#4-full-sdlc-demo)
@@ -116,5 +117,6 @@ for a full command-by-command example.
116
117
  ---
117
118
 
118
119
  **Core principles:** Plan before code. Impact analysis before touching any symbol.
119
- 2-layer review before every PR. Re-index after every merge. Mine decisions
120
- weekly. MemPalace = decisions. Not CLAUDE.md.
120
+ Run `gitnexus_detect_changes` before commit. 2-layer review before every PR.
121
+ Re-index after every merge. Mine decisions weekly and after major decisions.
122
+ MemPalace = decisions. Not CLAUDE.md.
@@ -1,37 +1,4 @@
1
1
  {
2
- "hooks": {
3
- "PreToolUse": [
4
- {
5
- "matcher": "Edit|Write|Create|MultiEdit",
6
- "hooks": [
7
- {
8
- "type": "command",
9
- "command": "FILE=\"$TOOL_INPUT_FILE\"; if [ -n \"$FILE\" ]; then if echo \"$FILE\" | grep -qE '\\.env$|\\.env\\.|\\.pem$|\\.key$|id_rsa|id_ed25519|\\.claude/settings\\.json'; then echo 'BLOCK: Protected file. Manual edit required for secrets/config files.'; exit 2; fi; fi"
10
- }
11
- ]
12
- },
13
- {
14
- "matcher": "Edit|Write|Create|Bash",
15
- "hooks": [
16
- {
17
- "type": "command",
18
- "command": "INPUT=\"$TOOL_INPUT\"; if [ -n \"$INPUT\" ]; then if echo \"$INPUT\" | grep -qE 'AKIA[0-9A-Z]{16}|ASIA[0-9A-Z]{16}|ghp_[a-zA-Z0-9]{36}|sk-[a-zA-Z0-9]{48}|xox[bpoas]-[a-zA-Z0-9-]+|eyJ[a-zA-Z0-9_-]*\\.[a-zA-Z0-9_-]*\\.[a-zA-Z0-9_-]*'; then echo 'BLOCK: Hardcoded secret/token detected. Use environment variables.'; exit 2; fi; fi"
19
- }
20
- ]
21
- }
22
- ],
23
- "Stop": [
24
- {
25
- "matcher": "",
26
- "hooks": [
27
- {
28
- "type": "command",
29
- "command": "ISSUES=\"\"; SECRETS=$(git diff --cached --diff-filter=ACM --name-only 2>/dev/null | xargs grep -lE \"AKIA[0-9A-Z]{16}|ghp_[a-zA-Z0-9]{36}|sk-[a-zA-Z0-9]{48}|xox[bpoas]-|BEGIN.*PRIVATE\" 2>/dev/null) || true; [ -n \"$SECRETS\" ] && ISSUES=\"${ISSUES}WARNING: Possible secrets staged: ${SECRETS} \"; LOGS=$(git diff --cached --name-only 2>/dev/null | xargs grep -lE \"console[.]log|debugger\" 2>/dev/null) || true; [ -n \"$LOGS\" ] && ISSUES=\"${ISSUES}WARNING: Debug artifacts in staged files: ${LOGS} \"; [ -n \"$ISSUES\" ] && echo \"$ISSUES\""
30
- }
31
- ]
32
- }
33
- ]
34
- },
35
2
  "permissions": {
36
3
  "allow": [
37
4
  "Read",
@@ -186,4 +186,3 @@ PR description must include: impact summary (from GitNexus), test results.
186
186
  ## Security
187
187
 
188
188
  - Never hardcode credentials. Use environment variables.
189
- - Review `.claude/settings.json` hook rules if a block triggers unexpectedly.
package/bin/vsaf.js CHANGED
@@ -21,7 +21,7 @@ GLOBAL (once per machine → ~/.claude/)
21
21
  Binaries: gitnexus, mempalace
22
22
 
23
23
  PER PROJECT (per repo, run inside the repo root)
24
- .claude/settings.json Local AI settings (hook policy)
24
+ .claude/settings.json Local AI settings
25
25
  .claude/skills + .codex/skills BMAD skills synced for local clients
26
26
  _bmad + _bmad-output BMAD workspace + generated artifacts folders
27
27
  CLAUDE.md 8-step workflow rules
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngocsangairvds/vsaf",
3
- "version": "3.0.5",
3
+ "version": "3.0.6",
4
4
  "description": "VSAF — Agentic AI SDLC Framework. 4 integrated tools: BMAD, GitNexus, Superpowers, MemPalace. 2-layer review.",
5
5
  "keywords": ["claude", "claude-code", "ai", "sdlc", "framework", "bmad", "gitnexus", "mempalace"],
6
6
  "bin": {
package/src/status.js CHANGED
@@ -14,7 +14,7 @@ async function showStatus() {
14
14
 
15
15
  // ── Project ────────────────────────────────────────────────────────────────
16
16
  console.log('\n\x1b[1mProject (current repo)\x1b[0m');
17
- checkPath('.claude/settings.json', 'Project settings (hooks)');
17
+ checkPath('.claude/settings.json', 'Project settings');
18
18
  checkPath('CLAUDE.md', 'Workflow rules');
19
19
  checkPath('_bmad', 'BMAD workspace');
20
20
  checkPath('_bmad-output', 'BMAD output folder');
@@ -1,28 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Session-end verification hook for Claude Code.
3
- # Checks staged files for secrets and debug artifacts.
4
- set -euo pipefail
5
-
6
- cd "${PROJECT_DIR:-.}" 2>/dev/null || exit 0
7
-
8
- ISSUES=""
9
-
10
- # Check for hardcoded secrets in staged files
11
- SECRETS=$(git diff --cached --diff-filter=ACM --name-only 2>/dev/null \
12
- | xargs grep -lE 'AKIA[0-9A-Z]{16}|ghp_[a-zA-Z0-9]{36}|sk-[a-zA-Z0-9]{48}|xox[bpoas]-|BEGIN.*PRIVATE' 2>/dev/null) || true
13
-
14
- if [ -n "$SECRETS" ]; then
15
- ISSUES="${ISSUES}WARNING: Possible secrets staged: ${SECRETS} "
16
- fi
17
-
18
- # Check for debug artifacts in staged files
19
- LOGS=$(git diff --cached --name-only 2>/dev/null \
20
- | xargs grep -lE 'console[.]log|debugger' 2>/dev/null) || true
21
-
22
- if [ -n "$LOGS" ]; then
23
- ISSUES="${ISSUES}WARNING: Debug artifacts in staged files: ${LOGS} "
24
- fi
25
-
26
- if [ -n "$ISSUES" ]; then
27
- echo "$ISSUES"
28
- fi