graph-dependency
Dependency management audit using SBOM generation, license compliance, supply chain security, and freshness scoring
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Dependency management audit using SBOM generation, license compliance, supply chain security, and freshness scoring
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Accessibility compliance audit using WCAG 2.2 AA standards, ARIA validation, screen reader testing, keyboard navigation, color contrast analysis, and i18n readiness
Execute the ANALYZE phase of the lifecycle via the `agf` CLI — PRD creation, requirements, Definition of Ready (7 checks), cross-project learning
API governance and design audit using OpenAPI/Swagger spec generation, REST maturity model, contract validation, and breaking change detection
Architecture governance using C4 Model, ADR lifecycle, Architecture Fitness Functions, layer boundary enforcement, and drift detection
Human-in-the-loop PLANNING skill — investigates the project (graph + git + harness/gaps) and runs the whole ANALYZE→DESIGN→PLAN chain in one faceted loop to produce a COMPLETE PRD injected as graph backlog (epics, tasks, testable AC) for a separate agent to implement. Applies the project's planning methodologies — Impact Mapping + OKR per epic, JTBD, MoSCoW, WSJF/Cost-of-Delay, User Story Mapping, Example Mapping (Rules/Examples → Given-When-Then AC), SPIDR splitting, INVEST, Definition of Ready, Risk Matrix; the full catalogue lives in the skill body. Stops for the human after each complete PRD and iterates the next cycle from the project's own findings (dogfood). Does NOT implement. Triggers — graph-backlog-generation, gerar backlog, criar PRD, planejar feature, detalhar épico, novo ciclo, "plan the next thing", "what should we build next".
Automated bug discovery through static analysis, LSP diagnostics, pattern detection, regression hotspot analysis, and error catalog mining
基于 SOC 职业分类
| name | graph-dependency |
| description | Dependency management audit using SBOM generation, license compliance, supply chain security, and freshness scoring |
| triggers | ["graph-dependency"] |
| version | 2.0.0 |
| author | Diego Nogueira |
| date | "2026-06-21T00:00:00.000Z" |
Dependency management audit using SBOM generation, license compliance, supply chain security, and freshness scoring. Identifies vulnerabilities, license risks, outdated packages, and supply chain attack vectors across all project dependencies.
Cross-references: [[swe-at-google]] ch21 (Dependency Management), ch18 (Build Systems); [[humble-continuous-delivery]] ch14 (Advanced Version Control)
npm audit → license scan → one-version check → diamond detection → freshness check → SBOM generation → supply chain analysis → upgrade plan → report → write_memory
Run npm audit --json for full vulnerability report. Categorize by severity (critical/high/medium/low). Check both production and dev dependencies. Flag critical/high CVEs as DEPLOY blockers.
npm audit fix auto-fixable issues vs manual resolutionSWE@Google principle: enforce exactly one version of every third-party dependency across the project. Multiple versions of the same package create hidden diamond conflicts and inflate bundle size.
# Find packages with multiple installed versions
npm ls --json --all 2>/dev/null | node -e "
const d=JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'));
const seen={};
function walk(deps,name){
if(!deps) return;
Object.entries(deps).forEach(([k,v])=>{
seen[k]=seen[k]||new Set();
seen[k].add(v.version);
walk(v.dependencies,k);
});
}
walk(d.dependencies);
Object.entries(seen).filter(([k,v])=>v.size>1)
.forEach(([k,v])=>console.log(k+': '+[...v].join(', ')));
"
Flag each duplicate version as a One-Version Violation. Target state: zero violations.
Diamond problem: app → libA@1.x and app → libB@2.x both depend on libbase at incompatible versions. Types and APIs passed across version boundaries break silently.
# Detect diamond conflicts: packages with 2+ versions in the tree
npm ls --json --all 2>/dev/null | node -e "
const data = JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'));
const versions = {};
function collect(deps) {
if (!deps) return;
for (const [name, info] of Object.entries(deps)) {
if (!versions[name]) versions[name] = [];
versions[name].push(info.version);
collect(info.dependencies);
}
}
collect(data.dependencies);
Object.entries(versions)
.filter(([,v]) => new Set(v).size > 1)
.forEach(([name, v]) => console.log('DIAMOND:', name, [...new Set(v)].join(' vs ')));
"
For each diamond: identify which consumers pin the conflicting versions and assess resolution path (upgrade one, dedup, or replace).
Check all dependency licenses via npm ls --json. Flag incompatible licenses.
UNLICENSED, SEE LICENSE IN, missing license fieldEach major version behind represents months of accumulated unpatched CVEs, community drift, and API churn. Freshness is a security signal, not just a hygiene score.
Run npm outdated --json and score each production dependency:
| State | Score | Security Implication |
|---|---|---|
| Latest installed | 100 | Baseline |
| 1 minor behind | 80 | Minor CVE exposure window |
| 2+ minor behind | 60 | Moderate unpatched surface |
| 1 major behind | 50 | ~6–12 months CVE lag |
| 2+ major behind | 20 | 1+ year unpatched, likely breaking API |
| No release in 12+ months | 0 | Unmaintained — supply chain risk |
Calculate average freshness. List bottom 10 as priority update targets.
Generate Software Bill of Materials in CycloneDX format (NIST/CISA mandated for supply chain transparency). Pin all deps with cryptographic hashes — the build must fail if a downloaded artifact doesn't match.
npm sbom --sbom-format cyclonedx > sbom.json
Verify SBOM completeness: total components must match npm ls --all count. Validate package-lock.json integrity hashes are present for every dependency.
extraneous or missing packages in npm ls outputSWE@Google principle: upgrades that are not automated simply do not happen. Manual upgrade policies accumulate as compounding debt.
package-lock.json committed and pinned — one revert recovers the prior state"1.2.3") not ranges ("^1.2.3") for critical depsScore 0-100 (audit 30%, licenses 20%, freshness 25%, supply chain 25%).
agf scan-binaries # shipped binaries: provenance, unexpected executables
agf memory write dependency-audit-<date> --content "<report>"
Every unresolved CVE or license conflict becomes a node — agf node add --type risk — or it is not tracked.
Grading:
^, ~, 1.+) for critical deps — breaks reproducibility and rollbacksEconomia de tokens. Os levers compartilhados por todas as skills —
--select,agf retrieve-command,agf exec chain, reuso antes de criação — vivem em_shared.md→ Token Economy. Fonte única: um parágrafo repetido em trinta arquivos é o trigésimo primeiro que envelhece sozinho.
Não precisa de flags. CLI gerencia compressão automaticamente com --ai ativo.
Consulte comandos com agf retrieve-command "<intenção>".
Ver _agf-rag.md para detalhes.