smriti/cli/smriti_cli/skill_pack/__init__.py
Himanshu Dongre ec0139f707 Add Smriti agent skill pack source and renderer
The skill pack is an instruction file installed into an agent host's
project directory so Smriti's workflow lives in the agent's system
context instead of documentation nobody reads. A single versioned
template.md renders for both Claude Code (MCP-primary) and Codex
(CLI-primary) via a pure-function substituter, keeping content in
sync mechanically across targets.

template.md contains 15 sections. The load-bearing one is Section 5,
When NOT to checkpoint, with equal weight to Section 4. Agents are
told explicitly not to checkpoint after every small step, not to
produce end-of-session blobs, not to treat commits as a save button,
not to stack commits on inconsistent state, not to restate existing
state, and not to checkpoint just because the user asked when there
is no real inflection point. A frequency target (2-4 checkpoints per
4-hour session) and a three-question signal test give agents concrete
criteria for every call.

Other sections cover the read-state-first reflex, when to fork, when
to review, when to compare, when to restore, drift detection,
explicit anti-patterns (HANDOFF.md, silent state reads, inconsistent
author_agent, /chat/send), and the phrases the agent should say out
loud so the human watching has an audit trail.

Renderer API (all pure functions): load_template, get_version, render,
install. install is version-aware: refuses to overwrite a destination
whose installed version is >= the template version unless force=True.
Dry-run mode returns the rendered content without writing.

Content-integrity tests parametrized over both targets assert that
every anti-pattern rule, the signal test, the frequency target, and
the drift-detection guidance appear in the rendered output. If a
future template edit drops any of them, tests fail loudly.

22 skill pack tests, all green.
2026-04-12 02:07:47 +05:30

37 lines
1.4 KiB
Python

"""Smriti agent skill pack — the agent-onboarding surface.
The skill pack teaches coding agents (Claude Code, Codex) when and
why to use Smriti's tools — when to checkpoint, when NOT to checkpoint,
when to fork, how to detect drift, and the explicit anti-patterns to
reject. It is installed into an agent host's project directory as a
single versioned markdown file so the instructions live in the
agent's system context rather than in documentation the agent never
reads.
Public surface:
render(target_key) -> str # render template for a target
install(target_key, ...) -> InstallResult # write rendered template to disk
get_version(content=None) -> str # parse frontmatter version
list_targets() -> list[SkillTarget] # enumerate known targets
get_target(target_key) -> SkillTarget # resolve a target config
Layout:
skill_pack/
__init__.py — re-exports the small public surface
template.md — single source of truth (versioned frontmatter)
renderer.py — pure-function render + install logic
targets.py — target configs (display name, destination)
"""
from .renderer import InstallResult, get_version, install, load_template, render
from .targets import SkillTarget, get_target, list_targets
__all__ = [
"InstallResult",
"SkillTarget",
"get_target",
"get_version",
"install",
"list_targets",
"load_template",
"render",
]