Files
obelisk/docs/adr/0004-skill-artifact-readable-not-bundled.md
tommy0103 90191e4604 feat(cli): extract Obelisk runtime into npm package
Add @obelisk-apps/cli with the existing build, search, query, and attune contract plus official skill installation.

Separate the docs-only skill artifact, bootstrap installer, release layout, cross-platform CI, and package-level regression coverage.
2026-07-16 17:26:23 +08:00

22 lines
1.3 KiB
Markdown

# The CLI ships readable compiled JS; the skill remains docs-only
**Context.** Obelisk reads a user's entire local Claude Code and Codex history,
so auditability is the foundation of trust. Bundling/minifying Core into one
opaque file would make the runtime harder to inspect. Shipping executable Core
inside `.claude/skills` / `.agents/skills` would also blur the boundary between
the agent's instructions and the local data runtime.
**Decision.** `@obelisk-apps/cli` ships **readable, non-bundled, non-minified**
compiled JavaScript emitted straight from `tsc` (module structure and comments
preserved, ~1:1 with the TypeScript source), plus `schema.sql`. It excludes the
app, renderer, release assets, and tests. The separately published agent skill
ships only `SKILL.md`, `references/`, and metadata; every executable action in
the skill delegates to the installed `obelisk` command. Bundling into one file
is deliberately rejected because it trades auditability for marginal size.
**Consequences.** Runtime ownership is unambiguous: npm installs the CLI, while
the skills installer installs only agent guidance. A future contributor may be
tempted to re-embed Core in the skill or bundle the CLI — this ADR records that
both are intentional boundaries. `build:cli` owns compiled code;
`build:skill` owns docs-only packaging.