Skip to content

docs: ADR-0005 install seam + Origin model (spec 003 groundwork); gitignore specs/#202

Merged
aroff merged 1 commit into
mainfrom
feat/browser-skill-management
Jul 9, 2026
Merged

docs: ADR-0005 install seam + Origin model (spec 003 groundwork); gitignore specs/#202
aroff merged 1 commit into
mainfrom
feat/browser-skill-management

Conversation

@aroff

@aroff aroff commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Design groundwork for browser skill management (spec 003), settled via a grilling session. This PR is docs + repo-hygiene only — no code changes (the implementation follows in later phases on this branch).

It also flips how design specs are stored: specs/ becomes a local working artifact rather than shipped in the repo.

What's here

  • docs/adr/0005-install-seam-and-origin-model.md — the architectural spine:
    • Install/update/reindex logic moves into fastskill-core; the CLI (execute_add/execute_update/execute_reindex) becomes a thin caller over the same core methods — one path, no drift. The embedding provider is injected at serve startup; the HTTP path returns structured results (no shell-out, no 501). UpdateService is narrowed to the read-only "what's newer?" query.
    • One canonical Origin enum (git | local | zip-url | repository) replaces SkillSource (two colliding types), SourceType, and the nine flat SkillDefinition.source_* fields. Origin::repository is a reference into a configured Repository, not the Repository itself. Greenfield break, no back-compat shim.
    • Records the rejected alternatives (trait-injection; keep shelling out; leave the CLI on a separate path).
  • CONTEXT.md — new Origin glossary term + the Origin::repositoryRepository distinction.
  • .gitignorespecs/ are local design artifacts; untrack the existing specs (they remain on disk + in history).

Key resolved decisions (from the grill)

Branch Decision
Seam Move logic to core; inject the embedding provider; migrate the CLI onto the shared method
Origin One canonical enum; full reconciliation; greenfield break, no shim
Install≡Update One install(origin, mode: Fresh|Update); per-variant re-resolve; immutable/editable = honest no-ops
Identity Derived id; install is fetch-then-409-on-existing-id (even for a different Origin)
Reindex Auto iff provider else skip-silently; standalone /reindex200 skipped (not 501) with no provider
Capabilities GET /status gains writable + embedding_provider; 403 stays as backstop
Phasing 0 Origin model → 1 core seams + CLI migration → 2 endpoints → 3 UI → v2 (version picker, sanitized MD preview)

Note

The rewritten specs/003-browser-skill-management.md now lives on disk only (gitignored), so it is intentionally not in this diff. The ADR + glossary are the committed design record; the implementation phases land on this branch next.

Pre-commit checks pass (fmt / clippy -D warnings / 658 tests — code unchanged from main).

🤖 Generated with Claude Code

Outcome of grilling spec 003 (browser skill management).

- ADR-0005: install/update/reindex logic moves into fastskill-core (CLI
  becomes a thin caller; embedding provider injected at serve startup); one
  canonical `Origin` type replaces SkillSource(x2), SourceType, and the nine
  flat SkillDefinition.source_* fields. Greenfield break, no back-compat shim.
- CONTEXT.md: add the `Origin` glossary term (and the Origin::repository vs
  Repository distinction).
- .gitignore: specs/ are local working artifacts, not shipped in the repo;
  untrack the existing specs (they remain on disk + in history).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@aroff aroff merged commit b7a727f into main Jul 9, 2026
10 checks passed
@aroff aroff deleted the feat/browser-skill-management branch July 9, 2026 00:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant