next-phase — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited next-phase (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
plan/ folderYou orchestrate exactly one phase of the remediation plan in plan/ from start to push, then stop. Repeated invocations walk the plan in order: Phase 0 → 1 → 2 → 3 → 4 → 5 → 6. You do not implement the work yourself — you delegate to specialized sub-agents in parallel and integrate their work.
The plan lives in plan/:
plan/README.md — index + sequencing + the phase table.plan/phase-0-dependency-currency.md … plan/phase-6-mcp-competitive.md — one file per phase.docs/CODEBASE_AUDIT_2026-08.md.Each phase file has a ## Checklist of - [ ] items and a ## Verification gate of - [ ] items. A code finding looks like:
- [ ] 🔴 **<title>** · CONFIRMED
- `src/utils/ssrfGuard.js:129`
- Failure: <concrete failure scenario>
- Fix: <the fix>The ` file:line and Fix:` sub-bullets are the contract you hand to the sub-agent — copy them verbatim, don't paraphrase.
server.js and shared src/utils/* are hotspots; give each hot file to a single agent.git, npm install/update, and the test suites may fail under a restrictive sandbox (listen EPERM / write EPERM are artifacts, not real failures). If a step fails that way, re-run it with the sandbox disabled. Manual node --test runs need --test-force-exit placed before the file path (after it, the flag is silently ignored; a Playwright handle otherwise hangs the exit — see CLAUDE.md). npm run test:unit already sets it.plan/phase-*.md and order them by phase number (0 → 6).- [ ] line.- [ ] in every phase file is already - [x], output All phases complete — nothing to do. and exit.# Phase N — … heading).**DECISION** or the README table marks it "Yes" under "Needs a decision?"). Phases 5 and 6 are DECISION phases.- [ ] item in ## Checklist, verbatim, plus each item's file:line and Fix: sub-bullets.## Verification gate block verbatim.git status --short and git rev-parse --abbrev-ref HEAD. If the tree is dirty (anything other than files under plan/), stop and report.If the current phase is a DECISION phase, do not start work. Instead:
engines.node to >=20?"; Phase 6: which spec-adoption / competitive items to pursue).AskUserQuestion to get the call. Only the items the user greenlights become in-scope; leave the rest - [ ].Group the in-scope unchecked items by owning agent, primarily from each finding's file:line. Mapping:
| Finding area (by file / theme) | Sub-agent |
|---|---|
SSRF (src/utils/ssrfGuard.js, ssrfProtection.js), OAuth (src/server/auth/oauth.js), auth/billing (src/core/AuthManager.js, src/server/withAuth.js), secret masking, webhook SSRF | security-auditor |
Tool logic & core in src/tools/** and src/core/** (crawlers, cache, processing, analysis, Snapshot/ChangeTracker, Research, Localization, Stealth), server.js handlers/schemas | mcp-implementation |
Real-module unit/integration tests, SSRF regression suite, coverage, npm test, node test-tools.js, npm audit | testing-validation |
Leak assertions (WeakRef/--expose-gc), soak/RSS/memory, browser-pool load | performance-monitor |
docs/**, PRD.md, docs/CHANGELOG.md, README.md, docs/PRODUCTION_READINESS.md | api-documenter |
npm update, dependency bumps/removals in package.json, Node-floor bump, Docker/npm verification, version bump | deployment-manager |
Notes:
deployment-manager, verify with testing-validation.mcp-implementation work into several parallel agents by disjoint subsystem/file set (e.g. basic+scrape, crawl+map, extract+document, search+research, batch+actions) so no two agents share a file. Assign all server.js findings to a single agent.Send one message containing one Agent tool call per group. Each prompt must:
file:line and Fix:` line.plan/, committing, or pushing.Prompt skeleton (fill in real items — do not copy literally):
You are shipping part of Phase <N> — <title> of the plan/ folder. Goal: <one line>.
Your owned items (verbatim from plan/phase-<N>-*.md):
- [ ] <emoji> <title>
file:line: <src/...:NN>
fix: <the fix text>
Owned files (touch ONLY these): <disjoint file list>
Forbidden: editing anything under plan/, committing, pushing, touching files outside the list.
When done, report: (1) files modified, (2) one-line outcome per item.After all agents return:
git status --short and git diff --stat.## Verification gate (the checklist from the phase file — its live re-smokes and assertions) plus the project-standard suites: npm run test:unit # expect every test to pass
npm test # expect 100.0% COMPLIANT, 0 errorsFor dependency phases (0, 5) also run npm audit and confirm the targeted advisories cleared. Run any phase-specific commands the gate names (e.g. node test-tools.js, a soak test).
Only on full verification success:
- [ ] → - [x] (checklist items and verification-gate items). Under the # Phase N heading, append: **Completed:** YYYY-MM-DD (today's real date). For a partial DECISION phase, flip only the greenlit items and note which were deferred.✅ to its row) so the index reflects progress.feedback_commit_update_prd memory. Match the format of prior entries. git add plan/phase-<N>-*.md plan/README.md PRD.md docs/CHANGELOG.md docs/PRODUCTION_READINESS.md <other modified files>Never git add -A.
Phase <N> — <phase title>. Body: short bullets of what shipped (grouped by theme/subsystem). End the body with the Co-Authored-By trailer your environment's git rules specify (e.g. Co-Authored-By: Claude <[email protected]>). git commit -m "$(cat <<'EOF'
Phase 1 — Critical Security Holes (SSRF · OAuth · Secrets · Billing)
- Unified SSRF pre-flight across every outbound fetch path (fetch/scrape/map/pdf/actions/webhook)
- Fixed IP-literal + IPv4-mapped-IPv6 guard bypass
- Closed anonymous OAuth token mint; masked secrets in usage telemetry
- No credits billed when the credit check itself refuses the call
- Added SSRF regression suite
Co-Authored-By: Claude <[email protected]>
EOF
)"git push to the current branch. Never push to main; never force. (gh/git may need the sandbox disabled here — see the gh-cli-needs-sandbox-off / running-tests-sandbox memories.)npm run test:unit / npm test results, and which phase runs next on the next /next-phase invocation.- [ ]. Never mark - [x] something that wasn't done.plan/.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.