Reference / In development
solomonar extensionIn development
Choose the stack and add skills or reviewers to a Solomonar project with the solomonar extension commands list, show, add, remove, and new. In development.
On this page
These commands are in development and not in the current build; running one today exits 2 with an unknown-command error. This page describes the planned behavior; the final output may differ in detail.
An extension is one skill or one agent: the rules of a language, library, or practice, a supporting procedure, or an extra reviewer. Extensions are grouped by the type of decision that selects them, so the project's capabilities follow its approved stack. ext is an alias for extension. Until these commands exist, choose catalog extensions with init --ext.
The examples use the specification's ledger project, initialized with the go extension only (P/D-1).
Groups
| Group | Selects | Records a decision |
|---|---|---|
language, architecture, frontend, backend, persistence, testing, operations |
The stack | Yes: adopting or dropping one is an architecture or dependency decision, recorded in docs/decisions.md |
workflow |
Procedures that support the process | No |
review |
Extra specialist reviewers | No |
solomonar extension list
Read-only. Lists the catalog and project extensions by group, with their state, the decision that adopted them, their requirements, and when they apply.
When to use it
When you choose part of the stack, for example after a prototype, or to see which rules apply to the project.
Who runs it
You and agents.
solomonar extension list [--group <group>] [--kind <skill|agent>] [--installed] [--json]
Flags
| Flag | Meaning |
|---|---|
--group |
Only one group. |
--kind |
Only skills or only agents. |
--installed |
Only installed extensions. |
Example
solomonar extension list
GROUP NAME KIND SOURCE STATUS DECISION REQUIRES APPLIES WHEN
language go skill catalog installed P/D-1 - A change touches Go code
frontend htmx skill catalog available - - hx-* attributes or endpoints that return fragments
frontend templ skill catalog available - go *.templ files or the handlers that render them
testing tdd skill catalog available - - A change adds or changes behavior
solomonar extension show
Read-only. Prints one extension as rendered for this project: its group, source, state, decision, requirements, when it applies, and its rules, including the rules added by the other installed extensions.
When to use it
To read the exact rules an agent follows for a technology before you adopt it, or when a review cites one.
Who runs it
You and agents.
solomonar extension show <name> [--json]
Example
solomonar extension show templ
templ components · frontend skill · catalog · installed under P/D-3 · requires go
Applies when: a change touches *.templ files or the handlers that render them (paths: **/*.templ)
Rendered with: htmx
templ/C-1 must *_templ.go files are generated by templ generate and never edited by hand; CI fails when stale
templ/C-2 must User data is never rendered through templ.Raw or any other unescaped output
templ/C-3 should Components take view models built for the page, not domain entities or database rows
templ/C-4 must With htmx: render the fragment component when HX-Request is set, else the page component
File: docs/solomonar/skills/templ/SKILL.md
solomonar extension add
Installs catalog extensions, a project extension from a local directory, or a draft created with extension new, with their runtime stubs. For a stack group, without --decision the CLI records your approved P/D-n in docs/decisions.md and docs/stack.md, superseding the previous selection of that group.
When to use it
When you decide part of the stack, for example htmx for the frontend; when a task's approved decision adopts a technology; or to add a workflow procedure or an extra reviewer.
Who runs it
You, to record a project decision. An orchestrator only with --decision naming an approved task decision, in the task worktree. The state guard denies an agent's stack change without --decision.
solomonar extension add <name | path>... [--decision <ID>] [--rationale <text>] [-y] [--dry-run] [--json]
[--kind <skill|agent>] [--group <group>] [--title <text>]
[--requires <name>]... [--conflicts <name>]... [--applies-when <text>] [--path <glob>]...
Flags
| Flag | Meaning |
|---|---|
<name | path> |
Required. Catalog names, draft names, or local directories; several are allowed. |
--decision |
An approved decision that adopts the extension, such as W-002/D-1. Stack groups only. |
--rationale |
The reason recorded with the new P/D-n. Stack groups only. |
--kind, --group, --title |
Metadata of a local directory or draft. kind is inferred when unambiguous; group defaults to workflow for skills and review for agents. |
--requires, --conflicts |
Other extensions this one needs or excludes; repeatable. Local directories and drafts only. |
--applies-when, --path |
When the extension applies, and the matching path globs. --applies-when is required at adoption; without a terminal its absence is interactive_required. |
-y, --yes |
Accept the plan without prompts. |
--dry-run |
Print the plan and write nothing. |
Example
You adopt htmx for the frontend:
solomonar extension add htmx
Plan
extensions
create docs/solomonar/skills/htmx/SKILL.md
create .claude/skills/htmx/SKILL.md
create .agents/skills/htmx/SKILL.md
decisions
append docs/decisions.md P/D-2 Frontend technologies: htmx (approved, selected by you)
append docs/stack.md frontend: htmx (P/D-2)
update AGENTS.md (Extensions: htmx)
update .solomonar/manifest.json
Record P/D-2 as your approved decision for the frontend group? [Y/n] y
Added extension htmx (frontend skill) under P/D-2.
note: P/D-2 approves the technology and its rules; versions stay in the manifests, and every further
dependency still needs approval (rules section 3).
Next: commit on main: git add AGENTS.md .solomonar .claude .agents docs && git commit -m "docs: adopt the htmx extension (P/D-2)"
An orchestrator applying an approved task decision, in the task worktree, so the extension merges with the task:
solomonar extension add tdd --decision W-002/D-1 --yes
Verified W-002/D-1: approved in docs/decisions.md (selected option: test-driven development for all behavior changes)
Plan
extensions
create docs/solomonar/skills/tdd/SKILL.md
create .claude/skills/tdd/SKILL.md
create .agents/skills/tdd/SKILL.md
decisions
append docs/stack.md testing: tdd (W-002/D-1)
update AGENTS.md, .solomonar/manifest.json
Added extension tdd (testing skill) under W-002/D-1.
Next: commit in the worktree as "docs(W-002): adopt extensions for W-002/D-1"; they reach main with the task's merge.
An unmet requirement is rejected and writes nothing:
error: extension add rejected (extension_requires)
check: templ requires go (language), which is not installed
fix: solomonar extension add go templ
nothing was written
solomonar extension remove
Removes installed extensions, their unmodified files and runtime stubs, and re-renders the extensions that referred to them. For a stack group it follows the same decision rules as extension add: without --decision it records a superseding P/D-n with the reduced selection, or none when the group becomes empty.
When to use it
When the project drops a technology, practice, procedure, or reviewer. The CLI does not check whether code still uses the technology; it warns that the code loses its rules.
Who runs it
You, or an orchestrator with an approved task decision, as for extension add.
solomonar extension remove <name>... [--decision <ID>] [--rationale <text>] [--keep <path>]... [--overwrite <path>]...
[-y] [--dry-run] [--json]
Flags
| Flag | Meaning |
|---|---|
<name> |
Required. Installed extensions to remove. Core items are rejected with core_item. |
--decision, --rationale |
As for extension add. Stack groups only. |
--keep, --overwrite |
Resolve one modified file, otherwise a conflict (exit 4); one path per flag. |
-y, --yes |
Accept the plan without prompts. |
--dry-run |
Print the plan and write nothing. |
Example
solomonar extension remove htmx --rationale "Server-rendered pages only" --yes
The plan records a superseding frontend decision, deletes the htmx files, re-renders templ without its htmx rule, and prints warning: code governed by htmx loses its rules. Removing go while templ is installed is rejected with extension_requires.
solomonar extension new
Creates a draft project extension: a skill or an extra reviewer that the catalog does not cover, such as a domain rule set or an accessibility reviewer. A draft has no decision, adapter, or AGENTS.md entry until you adopt it with extension add <name>. Project extensions are project-owned; upgrades never change them.
When to use it
When the project needs its own rules or reviewer, before writing their content.
Who runs it
You. You or an agent then write the rules, and you adopt the extension.
solomonar extension new <name> --kind <skill|agent> --group <group> [--title <text>] [--requires <name>]...
[--conflicts <name>]... [--applies-when <text>] [--path <glob>]... [--dry-run] [--json]
Flags
| Flag | Meaning |
|---|---|
<name> |
Required. A new name; an existing one is name_collision. |
--kind |
Required. skill or agent. |
--group |
Required. One of the nine groups; workflow and review record no decision. |
--title |
Display title; defaults to the name. |
--requires, --conflicts |
Other extensions this one needs or excludes; repeatable. |
--applies-when, --path |
When the extension applies, and the matching path globs. May be left for adoption. |
--dry-run |
Print the plan and write nothing. |
Example
solomonar extension new money --kind skill --group backend --title "Money handling" \
--applies-when "A change handles monetary amounts"
Created draft project extension money (backend skill, project-owned)
create docs/solomonar/skills/money/SKILL.md
update .solomonar/manifest.json (state draft; metadata: group, requires, applies_when, paths)
no decision, adapter, rendered combination, or AGENTS.md entry until adopted
Write its rules as money/C-n (must|should), then adopt it: solomonar extension add money