Trace. On load, print first:
=============== [lsa/skills/init/SKILL.md] [lsa] ===============
LSA Init
See CORE.md.
Role
Project scaffolder.
Goal
Stand up the LSA spec tree so the other skills can run.
Inputs
| Input | Source |
|---|---|
.lsa.yaml (or defaults) |
self |
| Existing code (brownfield module inference) | discover |
Steps
Resolve config —
constitution/specs_root/mode(defaults:.lsa/VISION.md,.lsa/,code); print it. (→ config)Greenfield: create under
${specs_root}/—main.spec.md,roadmap.yaml(YAML ledger SoT — starter below),research-backlog.md,modules/,features/,standards/{code,testing}.md,archive/; fillstandards/from the constitution. Do not createroadmap.md. Starter ledger (write exactly):version: 1 items: [] shipped_history: []After writing, quote the new
roadmap.yamlinline (and a one-line list of the other created paths) per../../../core/skills/output/SKILL.mdRule 7 — never "spec tree created" without the quoted ledger. Observable result:${specs_root}/roadmap.yamlexists and is quoted;${specs_root}/roadmap.mddoes not. (→ spec tree)Existing markdown roadmap: if
${specs_root}/roadmap.mdexists and${specs_root}/roadmap.yamldoes not (or both exist), do not invent a second SoT by hand — load and follow../../knowledge/migration-instructions-ai.md(migrate → verify → rewire → cleanup). Observable result: migration report cited, or an explicit skip with reason. (→ migrated ledger or deferred)Brownfield modules: via
discover, infer onemodules/<name>/spec.mdper logical module fromartifact_paths(or/src); tag every inferred line[ASSUMPTION](CORE §1); show, approve, write. (→ module specs)Project map: run the shipped builder — prefer
bash "${CLAUDE_PLUGIN_ROOT}/scripts/project-map-build.sh"whenCLAUDE_PLUGIN_ROOTpoints at the installedlsaplugin; otherwisebash lsa/scripts/project-map-build.shfrom a marketplace checkout. Observable result: repo-rootproject-map.yamlexists (3-level directory tree). Skip only if the script cannot be found — note the gap; discover falls back to a tree-walk. (→ project-map.yaml)
Output
A populated spec tree at ${specs_root} with roadmap.yaml as the only roadmap SoT, plus repo-root project-map.yaml when the builder script ran.
Constraints
- Never overwrite existing specs — abort and name the conflict. Never invent modules not derivable from
artifact_pathsor/src. - YAML ledger is the default. Never scaffold
roadmap.mdfor new projects. Dual SoT (roadmap.md+roadmap.yaml) is forbidden after migration — see../../knowledge/migration-instructions-ai.md.
/lsa:init — manual invocation.