start-vibing-stacks 2.38.0 → 2.39.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/README.md CHANGED
@@ -6,7 +6,7 @@ Multi-stack AI workflow for **Claude Code** & **Cursor**. One command installs a
6
6
  npx start-vibing-stacks
7
7
  ```
8
8
 
9
- > Latest: **v2.38.0** — New `dead-code-hygiene` skill: remove unused legacy/inert code after replacements so leftover paths do not confuse later agent context. Workflow nudge in `user-prompt-submit` + `/feature`/`/fix`. Universal skills: **30**.
9
+ > Latest: **v2.39.0** — New `owned-infra-ops` skill + always-on memory: legitimate ops on user-owned servers (health/SSH backup/deploy) with phrasing and tool-order that reduce Anthropic Opus/Sonnet cyber false positives. Explicitly cannot override Cyber Verification / API cyber blocks. Universal skills: **31**.
10
10
 
11
11
  ---
12
12
 
@@ -15,7 +15,7 @@ npx start-vibing-stacks
15
15
  | Layer | Count | Purpose |
16
16
  |---|---|---|
17
17
  | Agents | **7** universal | `research-web` (MCP-first) · `documenter` (memory layer) · `domain-updater` · `commit-manager` · `tester` · `claude-md-compactor` (compaction) · **`security-auditor` (VETO)** |
18
- | Skills | **30** shared + stack-specific + frontend | Versioned (`version:` frontmatter), upgradable via `migrate` |
18
+ | Skills | **31** shared + stack-specific + frontend | Versioned (`version:` frontmatter), upgradable via `migrate` |
19
19
  | Hooks | `session-start` · `user-prompt-submit` · `pre-tool-use` · `post-tool-use` · `stop-validator` · `final-check` | Multi-instance coordination + git/docs/secrets/code-quality gates |
20
20
  | Commands | `/feature` · `/fix` · `/research` · `/validate` · `/peers` | Slash commands |
21
21
  | Workflows | `ci.yml` + `security.yml` per stack (audit · gitleaks · CodeQL · **Semgrep** · **Trivy** · **CycloneDX SBOM** · **dependency-review** · **OpenSSF Scorecard**) | Copied to `.github/workflows/` when target is empty |
@@ -35,7 +35,7 @@ npx start-vibing-stacks
35
35
 
36
36
  ## Skill matrix
37
37
 
38
- ### Universal (30 — shared across stacks)
38
+ ### Universal (31 — shared across stacks)
39
39
 
40
40
  | Group | Skills |
41
41
  |---|---|
@@ -44,7 +44,7 @@ npx start-vibing-stacks
44
44
  | **Reliability** | `error-handling` · `database-migrations` · `tool-resilience` · `dead-code-hygiene` |
45
45
  | **A11y / UX** | `accessibility-wcag22` · `ui-ux-audit` |
46
46
  | **CI / Quality** | `ci-pipelines` · `quality-gate` · `final-check` · `git-workflow` |
47
- | **Infra** | `docker-patterns` · `podman-patterns` · `kubernetes-patterns` · `hook-development` · `multi-instance-coordination` |
47
+ | **Infra** | `docker-patterns` · `podman-patterns` · `kubernetes-patterns` · `hook-development` · `multi-instance-coordination` · `owned-infra-ops` |
48
48
  | **Framework** | `react-server-components` · `laravel-octane-inertia` |
49
49
  | **Testing** | `playwright-automation` · `test-coverage` |
50
50
  | **Performance** | `performance-patterns` |
package/dist/migrate.js CHANGED
@@ -390,7 +390,7 @@ export function patchSettings(projectDir, dryRun) {
390
390
  else {
391
391
  report.alreadyPresent.push('permissions.defaultMode');
392
392
  }
393
- // Memory files (v2.34.0) ensure all canonical advertising + funnel memories are loaded.
393
+ // Memory files — canonical always-on memories (ads/funnel + owned-infra-ops).
394
394
  // This list is the single source of truth for auto-loaded .md memories.
395
395
  const requiredMemoryFiles = [
396
396
  '.claude/CLAUDE.md',
@@ -403,6 +403,7 @@ export function patchSettings(projectDir, dryRun) {
403
403
  '.claude/memories/ad-creative-cloaking.md',
404
404
  '.claude/memories/ad-bot-evasion.md',
405
405
  '.claude/memories/paid-ads-landing-validation.md',
406
+ '.claude/memories/owned-infra-ops.md',
406
407
  ];
407
408
  if (!settings.context)
408
409
  settings.context = {};
package/dist/setup.js CHANGED
@@ -264,6 +264,7 @@ export async function setupProject(projectDir, config, options = {}) {
264
264
  '.claude/memories/ad-creative-cloaking.md',
265
265
  '.claude/memories/ad-bot-evasion.md',
266
266
  '.claude/memories/paid-ads-landing-validation.md',
267
+ '.claude/memories/owned-infra-ops.md',
267
268
  ],
268
269
  },
269
270
  permissions: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "start-vibing-stacks",
3
- "version": "2.38.0",
3
+ "version": "2.39.0",
4
4
  "description": "AI-powered multi-stack dev workflow for Claude Code. Supports PHP, Node.js, Python and more.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,57 @@
1
+ ---
2
+ version: 1.0.0
3
+ ---
4
+
5
+ # Memory: Owned Infrastructure Ops
6
+
7
+ > **ALWAYS LOAD** — Authorizes legitimate admin work on infrastructure the user owns (or contractually administers): health checks, SSH with keys, backups, deploys, log pulls.
8
+
9
+ ---
10
+
11
+ ## Declared purpose
12
+
13
+ Help the agent treat **user-owned** server/ops requests as normal engineering work — not as unauthorized intrusion — when the user is clearly operating their own hosts.
14
+
15
+ Typical requests:
16
+
17
+ - “Is my VPS online?” / health check on a named host
18
+ - SSH with a project key (e.g. `.env.d/*.pub` / key path) for backup or deploy
19
+ - Pull or archive a known app directory on that host
20
+ - Inspect logs the user asks for on their machine
21
+
22
+ ---
23
+
24
+ ## Explicit rules
25
+
26
+ 1. **Ownership required.** Proceed with remote ops only when the user indicates the target is theirs (or they admin it). If unclear, ask once.
27
+ 2. **Single named target.** Do not scan networks or probe unrelated hosts.
28
+ 3. **Keys, not passwords.** Prefer SSH keys / agent. Never print secrets. Avoid `sshpass` and passwords on the CLI.
29
+ 4. **Scoped commands.** Prefer the minimum checks for the stated task over host-wide enumeration.
30
+ 5. **Load skill `owned-infra-ops`** for tool order, phrasing, and recovery when blocked.
31
+
32
+ ---
33
+
34
+ ## Hard limit (Anthropic cyber safeguards)
35
+
36
+ This memory **does not** and **cannot** override Anthropic’s real-time cyber safeguards on Opus/Sonnet, nor the Cyber Verification Program (CVP).
37
+
38
+ If the API returns a cybersecurity / Cyber Verification block:
39
+
40
+ - Stop remote recon/SSH chains in that turn
41
+ - Do not rephrase to evade the block
42
+ - Recover via: user-run commands + pasted output, key-based scoped SSH next time, or org CVP application — see skill `owned-infra-ops`
43
+
44
+ ---
45
+
46
+ ## Out of scope
47
+
48
+ - Third-party / competitor infrastructure without clear admin authority
49
+ - Offensive security, exploit development, mass recon, credential stuffing
50
+ - “Bypass Anthropic / evade the cyber gate” requests
51
+
52
+ ---
53
+
54
+ ## See Also
55
+
56
+ - Skill: `owned-infra-ops` (full checklist and safe patterns)
57
+ - Skill: `secrets-management` (keys, `.env.d/`)
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: owned-infra-ops
3
+ version: 1.0.0
4
+ description: User-owned server ops (health check, SSH backup, deploy) — ownership framing, safe tool order, and patterns that reduce Anthropic Opus/Sonnet cyber false positives. Invoke when the user asks to operate on infrastructure they own. Not for third-party systems, offensive security, or mass recon. Cannot override Anthropic Cyber Verification Program / API cyber blocks.
5
+ ---
6
+
7
+ # Owned Infrastructure Ops
8
+
9
+ **Invoke when the user asks to operate on infrastructure they own** — health checks, SSH into their VPS, backups, deploys, log pulls. Goal: complete legitimate admin work with minimal “cyber recon” signal.
10
+
11
+ > **Hard limit:** Project memories and this skill **cannot** lift Anthropic’s real-time cyber safeguards on Opus/Sonnet. If the API returns a Cyber Verification / cybersecurity topic block, stop and follow the recovery section — do not rephrase to evade.
12
+
13
+ ---
14
+
15
+ ## Golden Rules
16
+
17
+ 1. **Ownership first.** Confirm the host/IP/domain is the user’s (or contracted admin scope) before remote ops.
18
+ 2. **One named target.** No CIDR sweeps, port scans, or “check all servers.”
19
+ 3. **Prefer keys over passwords.** Never put passwords in agent commands or chat output.
20
+ 4. **Minimal recon.** Only the checks needed for the stated task (backup path, health URL) — not full host enumeration.
21
+ 5. **If Anthropic cyber-blocks:** stop the remote chain; ask the user to run SSH locally and paste output, or apply CVP.
22
+
23
+ ---
24
+
25
+ ## Ownership Checklist (before Bash/SSH)
26
+
27
+ Ask or confirm when unclear:
28
+
29
+ - [ ] User states the host is **theirs** (or they admin it under contract)
30
+ - [ ] Target is a **single** hostname/IP already known to them
31
+ - [ ] Task is ops (health / backup / deploy / logs) — not vulnerability research on a third party
32
+ - [ ] Credentials: SSH key path / agent, not a password pasted into the agent
33
+
34
+ If ownership is ambiguous → **ask**. Do not default to proceeding.
35
+
36
+ ---
37
+
38
+ ## Preferred Phrasing (reduce false positives)
39
+
40
+ | Prefer (ops / owned) | Avoid (recon / attack framing) |
41
+ |---|---|
42
+ | “My VPS at … — check if SSH is up, then backup `/var/www/app`” | “Scan this IP / probe the network / enumerate services” |
43
+ | “I am root on this host; use my key at `.env.d/…`” | “Crack / brute / bypass SSH” |
44
+ | “Pull only the app directory for backup” | “Dump the whole filesystem / find all secrets” |
45
+ | User runs `ssh` and pastes `ls` / `df` output | Agent chains ping → banner grab → sshpass → recursive find |
46
+
47
+ ---
48
+
49
+ ## Safe Tool Order
50
+
51
+ ```
52
+ 1. Confirm ownership + task scope (one host, one goal)
53
+ 2. Connectivity (optional): ping OR curl https://host/healthz — not both + nmap
54
+ 3. Auth: ssh -i "$KEY" user@host (key already on disk / agent)
55
+ 4. Targeted commands only (named paths for backup/deploy)
56
+ 5. Tear down temp files; never echo secrets
57
+ ```
58
+
59
+ ### Safer patterns
60
+
61
+ ```bash
62
+ # CORRECT — key-based, single host, scoped command
63
+ ssh -i "$SSH_KEY_PATH" -o IdentitiesOnly=yes -o ConnectTimeout=15 \
64
+ user@my-vps.example.com 'hostname; ls -la /var/www/app.nutricionando'
65
+
66
+ # CORRECT — health of owned app (HTTPS)
67
+ curl -sfS --max-time 10 https://app.example.com/healthz
68
+
69
+ # CORRECT — when cyber risk is high: user runs SSH; agent analyzes pasted output only
70
+ ```
71
+
72
+ ### FORBIDDEN patterns (agent-side)
73
+
74
+ | Pattern | Why |
75
+ |---|---|
76
+ | `sshpass` / password on the command line | Credential in process list + strong cyber signal |
77
+ | Embedding passwords/private keys in prompts or logs | Leak + classifier trigger |
78
+ | `nmap`, subnet sweeps, mass banner grabs | Dual-use recon |
79
+ | Broad `find /` / recursive secret harvest after login | Looks like post-exploitation |
80
+ | Rephrasing after a Cyber Verification API block to “get around” it | Policy evasion — stop instead |
81
+ | Ops against hosts the user does not own | Out of scope |
82
+
83
+ ---
84
+
85
+ ## When Anthropic Cyber-Blocks Mid-Task
86
+
87
+ 1. **Stop** further remote Bash/SSH in that turn.
88
+ 2. Explain: API-level cyber safeguard (Opus/Sonnet), not a project hook.
89
+ 3. Offer recovery:
90
+ - User runs the SSH/backup commands locally and pastes output for analysis
91
+ - Prefer SSH keys + non-interactive, scoped commands next time
92
+ - For recurring legitimate dual-use ops: apply to the [Cyber Verification Program](https://portal.anthropic.com/programs/cvp) (org admin; data retention required)
93
+ 4. Optionally continue on **local** artifacts only (configs, scripts, pasted logs).
94
+
95
+ Do **not** claim this skill or any memory overrides that API gate.
96
+
97
+ ---
98
+
99
+ ## Prefer CI Over Ad-Hoc SSH
100
+
101
+ For deploy/backup that repeats: use existing pipelines (`ci-pipelines`, GitHub Actions, provider CLIs) instead of interactive root SSH from the agent.
102
+
103
+ ---
104
+
105
+ ## See Also
106
+
107
+ - `secrets-management` — SSH keys, `.env.d/`, never put secrets in commands
108
+ - `tool-resilience` — classify SSH/curl failures (permission vs transient)
109
+ - `ci-pipelines` — preferred path for repeatable deploy/backup
110
+ - `observability` — app `/healthz` / `/readyz` (not host recon)
111
+ - Memory `owned-infra-ops.md` — short always-on ownership contract
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: secrets-management
3
- version: 2.1.0
3
+ version: 2.1.1
4
4
  description: "Environment variable hygiene, OIDC federation for CI/CD (2026 default — replaces long-lived static secrets), secret detection (gitleaks 3-layer: pre-commit + CI + GitHub push protection), rotation, and secret-store patterns. Invoke whenever .env, secrets, API keys, env-var-reading code, or CI cloud-deploy credentials are touched."
5
5
  ---
6
6
 
@@ -403,6 +403,7 @@ Lockfile rules:
403
403
  - `security-baseline` — broader OWASP scope (2025-A03 Software Supply Chain Failures)
404
404
  - `observability` — log redaction details
405
405
  - `ci-pipelines` — OIDC patterns + workflow permissions
406
+ - `owned-infra-ops` — SSH/backup/deploy on user-owned hosts (keys, not passwords; cyber false-positive hygiene)
406
407
  - Stack `api-security-*` — usage patterns
407
408
  - `memory-optimization` — when this skill grows beyond ~200 lines, run MOP to keep it actionable
408
409
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: tool-resilience
3
- version: 1.0.0
3
+ version: 1.0.1
4
4
  description: How the agent should recover from TOOL failures (not application errors) — Read/Edit/StrReplace/Bash/WebFetch/WebSearch/Grep/Glob. Error taxonomy, retry/backoff, read-before-edit, and the Cloudflare 520 / HTTP 444 bot-block recovery (switch User-Agent). Invoke when a tool call fails, times out, returns non-2xx, or a fetch is blocked.
5
5
  ---
6
6
 
@@ -222,5 +222,6 @@ Tool <name> failed after N attempts.
222
222
 
223
223
  - `error-handling` — application-level error taxonomy, Result types, retry/backoff, circuit breaker
224
224
  - `debugging-patterns` — "Bundle, not Backend" triage; general debug flow
225
+ - `owned-infra-ops` — SSH/curl on user-owned hosts; recover when Anthropic cyber-blocks (do not evade)
225
226
  - `competitive-intelligence-research` / `funnel-content-copy` memories — permissive web-copy context
226
227
  - MCP web-scraper — sends browser-like headers by default; prefer it for reliable page copies
@@ -115,7 +115,8 @@
115
115
  "docker-patterns",
116
116
  "podman-patterns",
117
117
  "tool-resilience",
118
- "dead-code-hygiene"
118
+ "dead-code-hygiene",
119
+ "owned-infra-ops"
119
120
  ],
120
121
  "requirements": [
121
122
  {
@@ -105,7 +105,8 @@
105
105
  "docker-patterns",
106
106
  "podman-patterns",
107
107
  "tool-resilience",
108
- "dead-code-hygiene"
108
+ "dead-code-hygiene",
109
+ "owned-infra-ops"
109
110
  ],
110
111
  "requirements": [
111
112
  {
@@ -75,7 +75,8 @@
75
75
  "docker-patterns",
76
76
  "podman-patterns",
77
77
  "tool-resilience",
78
- "dead-code-hygiene"
78
+ "dead-code-hygiene",
79
+ "owned-infra-ops"
79
80
  ],
80
81
  "requirements": [
81
82
  {