13 lines
50 KiB
JSON
13 lines
50 KiB
JSON
{"_type":"issue","id":"agent-lib-4wx.11","title":"Deliver end-to-end documentation and release gate","description":"Finish the MVP by documenting the full workflow and proving it through an offline end-to-end acceptance path. The slice should provide README content, quickstart, CLI reference, Home Manager examples, security/trust notes, troubleshooting, and a release gate that demonstrates init, Source add, inspect, snippet, Home Manager eval/render, target Manifests, and a green offline check.","acceptance_criteria":"- Documentation covers installation, quickstart, CLI reference, Home Manager configuration, Lockfile behavior, discovery conventions, security/trust model, troubleshooting, MVP scope, and non-goals\n- An offline end-to-end fixture workflow demonstrates initialization, Source discovery, selection, Pi and Opencode Rendered output, target Manifests, and no unmanaged overwrites\n- nix flake check is green without external network access and verifies the MVP acceptance criteria","notes":"E2E fixture check green. All steps verified: init creates lockfile, discover finds all items, lockfile has rev/narHash/HM-compatible schema, inspect/snippet/validate commands work, managed-file protection present. nix flake check passes.","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:50:02Z","created_by":"m3tam3re","updated_at":"2026-05-28T08:13:15Z","started_at":"2026-05-28T07:46:50Z","closed_at":"2026-05-28T08:13:15Z","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:50:01Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.1","type":"blocks","created_at":"2026-05-27T19:50:02Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.10","type":"blocks","created_at":"2026-05-27T19:50:03Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.2","type":"blocks","created_at":"2026-05-27T19:50:02Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.3","type":"blocks","created_at":"2026-05-27T19:50:02Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.4","type":"blocks","created_at":"2026-05-27T19:50:02Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.5","type":"blocks","created_at":"2026-05-27T19:50:02Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.6","type":"blocks","created_at":"2026-05-27T19:50:02Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.7","type":"blocks","created_at":"2026-05-27T19:50:02Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.8","type":"blocks","created_at":"2026-05-27T19:50:03Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.11","depends_on_id":"agent-lib-4wx.9","type":"blocks","created_at":"2026-05-27T19:50:03Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":10,"dependent_count":0,"comment_count":0}
|
|||
|
|
{"_type":"issue","id":"agent-lib-4wx.10","title":"Complete CLI operational workflows and snippets","description":"Complete the day-to-day CLI workflow around existing Sources, Profiles, and Targets. The slice should make update/review/switch workflows practical with added/removed Item reports, offline and fetch validation modes, minimal and full Nix snippets, JSON output, non-interactive defaults, and an optional interactive entry point without automatic Nix edits.","acceptance_criteria":"- source update and source update --all report added and removed Items without changing Home Manager selection\n- validate runs offline by default, validate --fetch performs explicit reachability checks, and list/inspect/validate support stable JSON output\n- snippet emits both minimal Profile include snippets and full example configuration, while the CLI remains non-interactive by default and never edits Nix files","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:57Z","created_by":"m3tam3re","updated_at":"2026-05-28T07:46:28Z","started_at":"2026-05-28T07:39:36Z","closed_at":"2026-05-28T07:46:28Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.10","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:56Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.10","depends_on_id":"agent-lib-4wx.3","type":"blocks","created_at":"2026-05-27T19:49:57Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.10","depends_on_id":"agent-lib-4wx.5","type":"blocks","created_at":"2026-05-27T19:49:57Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.10","depends_on_id":"agent-lib-4wx.7","type":"blocks","created_at":"2026-05-27T19:49:57Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.10","depends_on_id":"agent-lib-4wx.8","type":"blocks","created_at":"2026-05-27T19:49:57Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":4,"dependent_count":1,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx.9","title":"Apply item-specific patches and deployment safety controls","description":"Add safety and customization controls around selected Items, including item-specific patches, target-specific overrides, targetName collision handling, editable-copy escape hatch, license propagation, and configurable incompatibility policy. The slice should prove that patches affect only copied Artifacts and never mutate original source content.","acceptance_criteria":"- Item-specific patches apply only to copied Artifacts, while original Canonical source content remains immutable and auditable\n- targetName overrides, target-specific enable/disable overrides, collision detection, and onIncompatible policies are enforced for both Pi and Opencode\n- License files, provenance headers for rendered Markdown, preserved file permissions, and editable-copy deployment mode are covered by tests","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:51Z","created_by":"m3tam3re","updated_at":"2026-05-28T07:39:25Z","started_at":"2026-05-28T07:25:13Z","closed_at":"2026-05-28T07:39:25Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.9","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:51Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.9","depends_on_id":"agent-lib-4wx.7","type":"blocks","created_at":"2026-05-27T19:49:52Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.9","depends_on_id":"agent-lib-4wx.8","type":"blocks","created_at":"2026-05-27T19:49:52Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":2,"dependent_count":1,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx.8","title":"Deploy selected Items to the Pi Target","description":"Create the first Rendered output path for Pi, from selected Canonical Artifacts through the Pi Adapter into a target Manifest and deployable Linux/XDG target structure. The slice should support Skills, Prompts, and Agent Definitions as far as the verified Pi contract allows, while failing on incompatible Items.","acceptance_criteria":"- A selected Skill, Prompt, and Agent Definition can be rendered or deployed to the Pi Target according to the verified Adapter contract\n- The Pi Manifest records Source, Item identifier, content type, targetName, rev, narHash, and adapterVersion for every deployed Item\n- The deployment path is read-only/symlink-oriented by default, includes provenance for rendered files, and never overwrites unmanaged files","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:47Z","created_by":"m3tam3re","updated_at":"2026-05-28T07:24:47Z","started_at":"2026-05-28T07:23:38Z","closed_at":"2026-05-28T07:24:47Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.8","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:46Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.8","depends_on_id":"agent-lib-4wx.4","type":"blocks","created_at":"2026-05-27T19:49:47Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.8","depends_on_id":"agent-lib-4wx.6","type":"blocks","created_at":"2026-05-27T19:49:47Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":2,"dependent_count":3,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx.7","title":"Deploy selected Items to the Opencode Target","description":"Create the first Rendered output path for Opencode, from selected Canonical Artifacts through the Opencode Adapter into a target Manifest and deployable Linux/XDG target structure. The slice should support Skills, Prompts, and Agent Definitions as far as the verified Opencode contract allows, while failing on incompatible Items.","acceptance_criteria":"- A selected Skill, Prompt, and Agent Definition can be rendered or deployed to the Opencode Target according to the verified Adapter contract\n- The Opencode Manifest records Source, Item identifier, content type, targetName, rev, narHash, and adapterVersion for every deployed Item\n- The deployment path is read-only/symlink-oriented by default, includes provenance for rendered files, and never overwrites unmanaged files","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:42Z","created_by":"m3tam3re","updated_at":"2026-05-28T07:23:24Z","started_at":"2026-05-28T07:21:06Z","closed_at":"2026-05-28T07:23:24Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.7","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:41Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.7","depends_on_id":"agent-lib-4wx.4","type":"blocks","created_at":"2026-05-27T19:49:42Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.7","depends_on_id":"agent-lib-4wx.6","type":"blocks","created_at":"2026-05-27T19:49:42Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":2,"dependent_count":3,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx.6","title":"Verify Target Adapter contracts and scaffold the registry","description":"Establish the Target Adapter Registry and verify the native Target contracts for Pi and Opencode before rendering any real output. The slice should encode supported content types, adapterVersion, Linux/XDG default paths, compatibility rules, and scaffold Crush/Amp as known but not implemented Targets.","acceptance_criteria":"- Pi and Opencode Target conventions are researched, documented in the implementation, and represented as Adapter metadata with adapterVersion\n- Crush and Amp are represented in the registry as scaffolded Targets that fail explicitly if enabled before implementation\n- Adapter compatibility and unsupported Target behavior are tested independently from the Home Manager deployment pipeline","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:37Z","created_by":"m3tam3re","updated_at":"2026-05-28T07:20:45Z","started_at":"2026-05-28T07:15:42Z","closed_at":"2026-05-28T07:20:45Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.6","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:37Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.6","depends_on_id":"agent-lib-4wx.1","type":"blocks","created_at":"2026-05-27T19:49:37Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":1,"dependent_count":3,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx.5","title":"Support all/include/exclude and Profile merge validation","description":"Extend the Selection Model to cover all supported selection semantics across multiple Profiles. The slice should normalize all/include/exclude, merge Profiles by union, reject ambiguous or conflicting selections, and expose the same fail-fast behavior through Home Manager evaluation and CLI validation where applicable.","acceptance_criteria":"- all, include, and exclude are normalized per Source and content type, with all=true plus include rejected and exclude allowed only with all=true\n- Multiple Profiles merge by union when compatible and fail when the same Item has conflicting overrides\n- Validation errors are precise and tested for unknown Sources, unknown Items, include/exclude conflicts, and incompatible selection semantics","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:32Z","created_by":"m3tam3re","updated_at":"2026-05-28T07:15:23Z","started_at":"2026-05-28T07:07:23Z","closed_at":"2026-05-28T07:15:23Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.5","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:32Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.5","depends_on_id":"agent-lib-4wx.4","type":"blocks","created_at":"2026-05-27T19:49:32Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":1,"dependent_count":2,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx.4","title":"Select one explicit Item into Canonical output","description":"Implement the first selected-Item path from Lockfile inventory through Profile include configuration into Canonical output. The slice should prove that explicit selection is required, unknown Sources/Items fail fast, target override data is preserved, and the selected Artifact remains a whole folder in Canonical output.","acceptance_criteria":"- A Profile can explicitly include one Item from a Source and produce a Canonical output Artifact for it\n- No Item is selected by default, and unknown Source or Item references fail with errors that include Source, type, Item, and Profile context\n- The Canonical output preserves the whole Artifact folder, including references and permissions, without target-specific rendering","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:27Z","created_by":"m3tam3re","updated_at":"2026-05-28T07:00:18Z","started_at":"2026-05-28T06:57:29Z","closed_at":"2026-05-28T07:00:18Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.4","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:27Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.4","depends_on_id":"agent-lib-4wx.2","type":"blocks","created_at":"2026-05-27T19:49:27Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":1,"dependent_count":4,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx.3","title":"Add and update reproducible Git Sources","description":"Add the first reproducible Git Source workflow, from provider-neutral and known Web tree URLs through the Source Resolver into pinned Lockfile entries. The slice should resolve refs to rev/narHash, run Discovery, support update/remove/list/inspect/update-all, and report added/removed Items using local Git fixtures rather than external network tests.","acceptance_criteria":"- source add resolves a Git Source ref to rev and narHash, normalizes supported Web tree URLs, runs Discovery, and writes a deterministic Lockfile\n- source update, source update --all, source remove, source list, and source inspect preserve reproducibility and report Item inventory changes\n- Private repository credentials are never stored in the Lockfile, submodules are unsupported, and default tests use temporary local Git repositories","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:22Z","created_by":"m3tam3re","updated_at":"2026-05-28T06:57:14Z","started_at":"2026-05-28T06:52:15Z","closed_at":"2026-05-28T06:57:14Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.3","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:22Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.3","depends_on_id":"agent-lib-4wx.1","type":"blocks","created_at":"2026-05-27T19:49:22Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.3","depends_on_id":"agent-lib-4wx.2","type":"blocks","created_at":"2026-05-27T19:49:22Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx.2","title":"Discover a local fixture Source into a Lockfile inventory","description":"Create the first content-bearing path from a local fixture Source through the Discovery Engine into the Lockfile inventory. The slice should discover Skills, Prompts, Agent Definitions, and Tool Manifests as whole Artifacts with Entry files, Metadata, warnings, and license hints, then expose the result through CLI inspect/validate output and Home Manager inventory validation.","acceptance_criteria":"- A local fixture Source produces Lockfile Items for Skills, Prompts, Agent Definitions, and Tool Manifests, including nested Item identifiers\n- Discovery records Entry file, Artifact path, Metadata, warnings, and license file hints without executing any source content\n- CLI inspect and validate expose the discovered inventory in human-readable and JSON output, and tests run offline against fixtures","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:17Z","created_by":"m3tam3re","updated_at":"2026-05-28T06:51:58Z","started_at":"2026-05-28T06:41:02Z","closed_at":"2026-05-28T06:51:58Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.2","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:17Z","created_by":"m3tam3re","metadata":"{}"},{"issue_id":"agent-lib-4wx.2","depends_on_id":"agent-lib-4wx.1","type":"blocks","created_at":"2026-05-27T19:49:17Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":1,"dependent_count":3,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx.1","title":"Bootstrap the empty agent-lib installation path","description":"Establish the first demoable path through the empty project: a Nix flake, development shell, CLI entry point, empty Lockfile initialization, importable Home Manager module, fixture skeleton, and a green baseline check. This slice should prove that agent-lib can be installed, initialized, and validated without any real Source content yet.","acceptance_criteria":"- agent-lib init creates a deterministic empty Lockfile with the expected schema version and no active Items\n- The Home Manager module can be imported and evaluated with agent-lib disabled and enabled against an empty Lockfile\n- The project quality gate runs offline and covers the baseline CLI, Nix, formatting, and fixture skeleton","status":"closed","priority":2,"issue_type":"feature","assignee":"m3ta-chiron","owner":"p@m3ta.dev","created_at":"2026-05-27T17:49:11Z","created_by":"m3tam3re","updated_at":"2026-05-28T06:40:53Z","started_at":"2026-05-27T18:00:14Z","closed_at":"2026-05-28T06:40:53Z","close_reason":"Closed","labels":["ready-for-agent"],"dependencies":[{"issue_id":"agent-lib-4wx.1","depends_on_id":"agent-lib-4wx","type":"parent-child","created_at":"2026-05-27T19:49:11Z","created_by":"m3tam3re","metadata":"{}"}],"dependency_count":0,"dependent_count":4,"comment_count":0}
|
||
|
|
{"_type":"issue","id":"agent-lib-4wx","title":"agent-lib PRD v1.0","description":"Product Requirements Document for agent-lib: an agent-independent library infrastructure built on Nix flakes and Home Manager. See docs/prd.md for the full document.","notes":"# agent-lib: Product Requirements Document\n\n**Status:** Draft \n**Version:** 1.0\n\n---\n\n## Problem Statement\n\nUsers who rely on multiple AI agent runtimes — such as Pi, Opencode, Crush, and Amp — face a fragmented and manually maintained experience when it comes to managing skills, prompts, and agent definitions. Existing approaches are agent-specific: configurations are copied, modified, and versioned separately for each runtime. This makes it difficult to:\n\n- Share and reuse skills across different agent runtimes\n- Reproduce a consistent agent environment across machines and systems\n- Import content from external repositories in a controlled, reproducible way\n- Manage which content is active on which target platform\n\nThere is no unified, agent-independent abstraction layer that allows a user to manage a canonical library of skills, prompts, and agent definitions — and then deploy precisely selected subsets to specific runtime targets in a deterministic, declarative way.\n\n---\n\n## Solution\n\n**agent-lib** is an agent-independent library infrastructure built on Nix flakes and Home Manager. It provides:\n\n1. A **canonical model** for skills, prompts, agent definitions, and tool manifests — stored as structured artifacts, not agent-specific configs\n2. A **Python CLI** for managing source repositories, discovering items, and producing configuration snippets — without ever editing Nix files automatically\n3. A **Home Manager module** that consumes a versioned lockfile and declarative profile selections to produce target-specific deployment artifacts\n4. **Target adapters** for supported runtimes (Pi and Opencode in MVP; Crush and Amp scaffolded)\n5. A **provenance-aware deployment pipeline** that keeps original artifacts immutable and renders target-specific outputs separately\n\nThe result: a single declarative source of truth for your agent library, deployed reproducibly to any supported target.\n\n---\n\n## User Stories\n\n### Source Management\n\n1. As a user, I want to add an external Git repository as a source, so that I can import skills and other content from shared libraries.\n2. As a user, I want the CLI to automatically pin the current commit (rev) and narHash when adding a source, so that my library is reproducible.\n3. As a user, I want to optionally specify a branch or tag (ref) when adding a source, so that I can target a specific release line.\n4. As a user, I want the CLI to resolve the default branch when no ref is specified, so that I do not have to know the branch name in advance.\n5. As a user, I want the CLI to normalize GitHub/GitLab/Web tree URLs (e.g., `https://github.com/org/repo/tree/main/skills`) into provider-neutral git URLs, so that I can paste URLs directly from browser tabs.\n6. As a user, I want to update a source to the latest version of its ref, so that I can pull in upstream changes.\n7. As a user, I want `source update` to update both the rev/narHash and the full discovery inventory, so that pins and artifacts stay in sync.\n8. As a user, I want to update all sources at once with `source update --all`, so that I can refresh my entire library efficiently.\n9. As a user, I want to remove a source from the lockfile, so that I can clean up deprecated or unwanted repositories.\n10. As a user, I want the CLI to warn when a source is still referenced in my Home Manager configuration after removal, so that I am not surprised by Nix eval failures.\n11. As a user, I want to list all configured sources with their current rev and item counts, so that I can review my library at a glance.\n12. As a user, I want to inspect a specific source in detail, so that I can see what skills, prompts, agents, and tool manifests are available.\n13. As a user, I want the CLI to detect and report when a source already exists, so th
|