howarewoo

woostack-init

Initialize or repair a repository's local `.woostack/` support and canonical GitHub policy without selecting a provider or publishing artifacts.

howarewoo 0 Updated 4w ago

Resources

3
GitHub

Install

npx skillscat add howarewoo/woostack/woostack-init

Install via the SkillsCat registry.

SKILL.md

woostack-init

Create or repair .woostack/ support without creating development authority. Initialization never
creates a specification, plan, issue, project, branch, pull request, or lifecycle state.

Command

/woostack-init [path]

Procedure

<wi> below means the installed woostack-init skill directory.

  1. Resolve the canonical target repository without changing it. Verify repository root, branch,
    working state, existing .woostack/ files, and collision/symlink/path safety.

  2. Resolve the effective local policy with
    `scripts/config/resolve-config.sh`. It merges the tracked
    .woostack/config.json with the optional primary-checkout
    .woostack/config.local.json, validates the canonical github object, and preserves every
    unrelated user-owned setting.

  3. Create only missing local support paths:

    • .woostack/config.json from `templates/config.json`;
    • local diagnostic report roots for Doctor, audit, and QA; and
    • worktree/recovery support declared by the canonical worktree contract;
    • the managed project OMP session-naming extension, settings entry, and ignore rules by running
      bash <wi>/scripts/provision-omp-session-name.sh <canonical-repository>. This deterministic
      provisioner updates only .omp/extensions/woostack-session-name.ts, .omp/settings.json, and
      .omp/.gitignore, preserves other extensions/settings/ignore lines, and rejects tracked settings.

    Delegated work selects agents already exposed by the active OMP session; see the
    OMP host adapter for capability routing and the
    optional safe cleanup path for unchanged definitions generated by older Woostack releases. Init
    does not create, update, validate, repair, or ignore OMP agent definitions.

  4. Do not discover, select, provision, migrate, mirror, or write any remote provider. Init does not
    infer a GitHub Project, Status field, issue, or publication destination. Direct GitHub planning
    and execution paths admit their exact scope under
    `artifact-providers/github.md`.

  5. Validate JSON, canonical policy, path permissions, ignore policy, report roots, and cross-links.
    Run the shipped Doctor checks through the owning workflow.

  6. Report created, repaired, preserved, skipped, and blocked local paths with exact validation
    results. A legacy provider setting or retained record is reported as retirement guidance at the
    boundary that encounters it; it never changes ordinary local initialization.

Canonical configuration

The shared artifact contract
defines the one active non-secret configuration surface:

{
  "github": {
    "owner": "acme",
    "ownerType": "organization",
    "statusField": "Status",
    "projectStatuses": {
      "planned": "Todo",
      "executing": "In Progress",
      "inReview": "In Review",
      "done": "Done",
      "blocked": "Blocked"
    }
  }
}

The top-level github object is optional. Its only allowed fields are owner, ownerType,
statusField, and projectStatuses; the resolver retains the existing value validation, including
five distinct non-empty Status option names. visibility is not active configuration: an existing
Project's actual visibility is read from GitHub. Parent-issue operations and exact issue paths do not
require github, a Project, or Status configuration. Explicit Project operations supply and verify
their exact destination and required mappings/capabilities; they never guess one.

artifacts.provider, artifacts.linear, artifacts.plane, and older root provider settings are
legacy opaque data. They remain untouched and inactive. Do not promote them into github, delete
them automatically, or contact a retired provider. When a caller reaches a boundary that would have
used one, report that the setting is retired and require the supported direct GitHub path or local
mode instead.

Retained data and recovery

Existing .woostack/tmp/runs/, legacy drafts, manifests, locks, reports, and remote records are
user data. Init does not import, rewrite, delete, or recreate wrappers from them. The
`run-store.py` safety contract remains available to the callers that still
need exact retained-data reads: containment, no-follow checks, private permissions, locking,
complete writes, atomic rename, directory flush, and compare-and-swap read-back remain mandatory.
Unknown or partial outcomes stop at the last independently read boundary.

Hard constraints

  • Initialization is local-only and provider-free; it never selects persistence or publication.
  • No source edit outside .woostack/ except the managed project OMP session-naming assets
    (.omp/extensions/woostack-session-name.ts, .omp/settings.json, and .omp/.gitignore); no
    application scaffold. Delegated work uses OMP agents already exposed by the host; Init never
    creates or repairs agent definitions.
  • No credential read/write, automatic migration, destructive cleanup, commit, push, pull request, or
    merge.
  • Preserve user-owned files, legacy settings, retained manifests, dirty worktrees, and reports.
  • Fail closed on symlink, path, permission, collision, malformed canonical configuration, or
    incomplete recovery evidence.