skills/woostack-init/SKILL.md
Use when initializing, scaffolding, or repairing the .woostack/ workspace — creates the memory store, specs and plans directories, config.json, and .gitignore from canonical templates, then runs the index builder and store linter. Invoke at project setup (brownfield) or from woostack-bootstrap (greenfield).
npx skillsauth add howarewoo/woo-stack woostack-initInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Creates or repairs the .woostack/ workspace directory tree for a project. It
writes every missing piece from the skill's templates/ directory, runs
build-index.sh to regenerate the derived memory index, and then runs
doctor.sh to lint the store. At the end it reports what was created, what
was skipped, and any doctor warnings or errors.
Two callers:
/woostack-init once to
set up .woostack/ in an existing project, or later to repair a partial or
stale workspace./woostack-init as a step in its scaffolding sequence so every new project
starts with a consistent workspace.Resolve the target directory. If an argument is given, treat it as the
project root; otherwise use the current working directory. Check whether
.woostack/ already exists and note each file that is present — these are
candidates for the keep/overwrite prompt.
Create missing pieces from templates/. For each item below, create it
only if it is absent (unless --force is active):
| Item | Source |
|---|---|
| .woostack/memory/ directory | (create empty) |
| .woostack/memory/.gitkeep | (touch) |
| .woostack/memory.md | (create empty — never clobber an existing file) |
| .woostack/specs/ directory | (create empty) |
| .woostack/plans/ directory | (create empty) |
| .woostack/config.json | templates/config.json ({ "review": {} }) |
| .woostack/.gitignore | templates/gitignore |
config.json ships as { "review": {} }. Each tool owns its own
namespace inside that object; for the review namespace see
references/memory.md.
Handle existing files. For any file that already exists and --force
is not active: prompt the user to keep or overwrite it. Under --no-clobber
skip all existing files silently without prompting. After the run, state
which mode was used (interactive / force / no-clobber) in the summary.
Obsidian vault config (optional). If --obsidian was passed, or if
--no-obsidian was not passed and the user accepts the prompt ("Set up
Obsidian vault config? [y/N]", default no), copy
templates/obsidian/ into .woostack/.obsidian/. Never clobber an
existing .woostack/.obsidian/ directory — skip silently if it is
already present. This makes .woostack/ an Obsidian vault so
memory/, specs/, and plans/ appear as a [[wikilink]] graph in the
desktop app. Obsidian is optional — all memory tooling (recall,
doctor, build-index) works without it.
Run the scripts.
bash scripts/build-index.sh .woostack/memory
bash scripts/doctor.sh .woostack/memory
Run build-index.sh first so the index is current before doctor.sh checks
for wikilink targets.
Report. Print a summary listing each file as created or skipped,
then echo the doctor output (warnings and error count). If doctor exits
non-zero, surface the errors prominently so the user can act on them before
committing.
--force — overwrite every existing file without prompting. Use with
caution: this will replace memory.md, config.json, and any notes that
happen to share a template name.--no-clobber — skip every existing file silently, no prompts. Useful in
automated contexts (CI, bootstrap) where the workspace may already be
partially initialized.--obsidian — force-enable the optional Obsidian vault config scaffold
(step 4) without prompting.--no-obsidian — force-skip the optional Obsidian vault config scaffold
(step 4) without prompting.memory.md, notes, or config.json without an explicit
overwrite instruction (user confirmation or --force). These files contain
project-specific knowledge that cannot be regenerated..woostack/memory.md is out of scope. That global shard is
owned by individual skills and the user; /woostack-init creates it empty
if absent and never rewrites it.skills/, action.yml, or any path outside .woostack/ in the target
project.build-index.sh,
doctor.sh, scope-match.sh) use only bash and coreutils. Do not introduce
node, python, or any other runtime to fulfill this verb..obsidian/ scaffold is opt-in (step 4).
All memory tooling (recall, doctor, build-index) works headlessly
without Obsidian. See
references/memory.md for the
full Obsidian integration contract.The full memory store contract — note frontmatter schema, glob semantics, derived index format, recall procedure, and script usage — is in references/memory.md.
development
Use to harden a plan, spec, or design by relentless interview — walk every branch of the decision tree, resolve each open question one at a time with a recommended answer, and amend the artifact in place until no new questions remain. This is the harden phase of the woostack build loop (woostack-build steps 3 and 6 — first the spec, then the plan); also usable standalone to stress-test or "grill me" on a design before committing to it.
development
Use to execute an approved woostack plan as a sequence of PR-sized, stacked increments via an inline or subagent-driven driver (--inline/--subagent, smart default) — implement each increment with TDD, tick the plan's checkboxes in place, commit via woostack-commit on its own Graphite branch, review each increment (woostack-review --fast inline; per-task spec+quality subagent loops in subagent mode), distill durable learnings, then continue. This is the execute phase of the woostack build loop (woostack-build step 8); also usable standalone via /woostack-execute <plan-path> [--inline|--subagent]. One plan per spec, multiple PRs per plan. Never merges.
development
Use when you want an HTML visualization of any source — a spec, plan, file, directory, or concept — tailored to a target audience (engineer, non-technical, investor, or any free-form reader). Reads the real source and writes one self-contained, offline-viewable HTML file; never the source of truth.
development
Use as the ideate phase of the woostack build loop — turn a feature idea into an approved design through collaborative dialogue, then stop. Explores intent, constraints, and approaches; presents a design and gets explicit approval. Writes no files and chains no skill; the caller (woostack-build) owns the spec and plan. Usable standalone to design before implementation.