cli: surface dependency graph in spm list/status
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 8
- Forks
- 0
- Avg merge
- 6h 12m
- Merged PRs (30d)
- 19
Description
Summary
Phase 2 of #68 (depends on the lockfile schema sub-issue; independent of the resolver internals — can be developed in parallel against fixture lockfiles that already carry the new provenance field). Update read-only diagnostic commands to show transitive dependency provenance.
Scope
spm listandspm statusdisplay which skills were pulled in transitively and by what (using the provenance field added toai.lock).- Keep output readable for the common case (no transitive deps) — only show graph info when it's non-trivial.
- Tests in
tests/cli.rscovering both a flat lockfile (no transitive deps, unchanged output) and a lockfile with transitive entries (new provenance shown).
Out of scope
Populating the provenance field via real recursive resolution (separate sub-issue) — build/test this against hand-written fixture ai.lock files.
Relevant code
src/cli.rs,src/lockfile.rs,tests/cli.rs
Part of #68.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in src/cli.rs and src/lockfile.rs to trace how spm list and spm status read and render lockfile data. Use the hand-written ai.lock fixtures described in the issue, then extend tests/cli.rs for flat lockfiles with unchanged output and transitive entries showing provenance. Done means both read-only commands display non-trivial transitive dependency information without adding graph output for flat lockfiles.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 84/100