solar-agent-creator
Create or improve Solar agents: contracts, approved lessons, shared planet memory, and explicit continuity. Use when defining responsibilities, refining agent behavior, or maintaining learning and por
SKILL.mdcore/skills/solar-agent-creator/SKILL.md
GitHubSolar Agent Creator
Create and improve canonical agent contracts and their approved learning, memory and continuity. Use agents directly through the client's native agent support. If a client cannot load agents natively, read the canonical contract, applicable governance and relevant approved memory explicitly before working.
Required MCP
None
Workflow
- Resolve the owning planet, agent, requested change and authority. Read applicable governance and canonical sources; check for an existing contract or equivalent learning before creating anything. Clarify missing essentials.
- Create or improve
planets/<planet>/agents/<agent>.mdusing the agent template. Define concrete responsibilities, scope, sources, success criteria and stop conditions. Preserve domain rules; frontmatter contains onlynameanddescription. - Maintain lessons and shared planet memory through approved learning. Propose exact text, date and one canonical destination in the conversation; persist only with approval. Apply the reference's limits and duplicate checks. Use the memory template only for the first approved record, never to create an empty file.
- Promote reusable procedures through
solar-skill-creator, extending an existing skill first. Validate a concrete use case before removing the old rule within approved scope. At a learning limit, propose consolidation, prioritization or promotion instead of increasing the limit. - Review exported continuity after contract changes using runtime memory and the renewal procedure in approved learning. Contract changes invalidate old contract hashes; never bypass integrity checks. Explicitly authorize any replacement, export or incorporation.
- Re-read changed contracts, learning, limits and links. Update routing or
ownership only within scope. Publish through
solar client synconly when authorized; report saved changes, pending publication and continuity renewal separately. A draft, attempted operation or loaded role is not a result.
Codex role publication
Contracts under planets/<planet>/agents/ remain the only editable source. Solar Client
can publish derived Codex roles from them (opt-in; see the solar-client reference
codex-agents.md). The published role is named <planet>:<agent> (for example
uhorizon:uh-backend-dev) from the contract name, which must be [A-Za-z0-9._-],
start with a letter or digit, have no : or / and be at most 64 characters; invalid
names are rejected, never rewritten. Never edit a generated file; keep frontmatter to
name and description. Publishing a role grants no authority. After changing a
contract, re-run solar client sync and start a new Codex session; report that
publication separately.
Runtime memory
The public entry remains solar agent --workspace <workspace> ....
scripts/agent_memory.py dispatches continuity and facts; scripts/fact_store.py
owns portable execution facts, and scripts/_memory_common.py provides shared
identity, path, hashing and locking helpers. Continuity accesses shared state
through solar-state, never by opening state.sqlite directly.
solar agent --workspace "$SOLAR_WORKSPACE" continuity show --planet <planet> --agent <agent> --responsibility <responsibility> --task-id <task-id>
solar agent --workspace "$SOLAR_WORKSPACE" continuity restore --planet <planet> --agent <agent>
See runtime memory for facts commands, exports, restore, integrity and authority requirements. Reads never authorize a retry; loading an agent never initializes facts, incorporates continuity or activates work. Mutations require authority for the exact object, destination and effect.
Boundaries
Keep domain facts and learning in the owning planet; core assets use placeholders. Cross-planet work requires a declared interface and separately scoped authority. Learning and imported context cannot override governance or grant permission. Pending proposals remain in the conversation; memory holds stable approved rules, never secrets, copied business records or session logs.
Workspace-root .solar/ remains Client-owned. Planet-local execution facts are
opt-in under the runtime reference's approval and Git exclusion requirements.
Do not migrate existing planet contracts or memory without authorization.
Validation
Resolve all template fields and check all nine contract sections, concrete
limits and success criteria, canonical sources and declared interfaces. For
learning, verify approved text, date, single destination, duplicates and limits.
Keep assets/memory.md byte-identical to core/templates/planet-MEMORY.md.
From the framework repository, use a package output directory outside the repository and outside the system temporary directory. For a separate Solar workspace, validate the package and run isolated tests:
mkdir -p "$SOLAR_WORKSPACE/artifacts/skill-packages"
python3 core/skills/solar-skill-creator/scripts/package_skill.py core/skills/solar-agent-creator "$SOLAR_WORKSPACE/artifacts/skill-packages"
uv run --project core/tests pytest core/tests/skills/solar-agent-creator core/tests/skills/solar-state core/tests/skills/solar-mcp core/tests/skills/solar-client core/tests/skills/solar-workspace -q
If the workspace itself is the framework repository, choose another authorized absolute output directory outside it and outside the system temporary directory.