mcpField
I
init-workspace

init-workspace

github.com/gtrabancoAgent workflows2294 installsUpdated today
Repository

About init-workspace

init-workspace is an agent skill that adapts an agentic-workflow documentation scaffold to an existing or empty repository. It uses repository discovery and an interview-driven process while requiring explicit consent before installs, hooks, or overwrites.

Key features

  1. 01Inspect repository and detect its stack
  2. 02Adapt workflow documentation and templates
  3. 03Support bootstrap, merge, and upgrade paths
  4. 04Require consent for installs and overwrites
  5. 05Record repository state and remaining placeholders

Use cases

  1. 01Prepare a repository for agentic workflows
  2. 02Adapt documentation to a project's conventions
  3. 03Upgrade an existing workflow scaffold without clobbering tailored content
  4. 04Identify setup decisions that need user consent

MCP support

The skill can register MCP servers such as Serena or Engram, but only after explicit user consent. It also specifies that existing MCP configuration must not be overwritten.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/gtrabanco/agentic-workflow --skill init-workspace

After installing, type/init-workspacein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
BOOTSTRAP_DISCOVERY.md
BOOTSTRAP_WRITE.md
ENGRAM.md
PORTABILITY.md
SERENA.md
UPGRADE.md

Details

From the project README

Init Workspace

Turn an empty or existing repo into one that works with the agentic workflow: copy the generic scaffold, then tailor it to this project instead of leaving raw placeholders.

Turn contract — verify before ending the turn

✓ Required user inputs were answered concretely (not defaulted). Consent for
  every install, hook, and overwrite is explicit; a consent gap runs the
  three-tier dispatch and stops with the dispatcher's `open-questions@1` block
  — against a scratch unit folder when no unit exists yet (§Consent).
✓ The adapted scaffold and repository-state ledger are written (or the merge/abort decision was asked) and remaining placeholders are listed
✓ Nothing was installed, registered (MCP) or overwritten — including the global
  Serena config — without an explicit yes
✓ Artifact language: explicit user instruction > the project's declared docs language > English. The CONVERSATION language never decides — a Spanish prompt still produces English PRs/issues/commits/SPECs unless one of the first two says otherwise
✓ The closing `→ Next:` block is printed as the ABSOLUTE last output

About to end the turn with any box unchecked? The turn is NOT done — complete the missing box first (weak models drop end-of-document duties; this list is first on purpose).

When to use

  • Setting up a repo to use these skills and you want the documentation substrate (AGENTS.md + docs/ map + templates) adapted to the project, not just copied.
  • Prefer this over a static npx degit gtrabanco/agentic-workflow/template when you want the gate commands, architecture, and doc domains filled in by interview.

Consent — mandatory, never defaulted

Installing a tool, wiring a hook, or overwriting an existing file each need an explicit yes; context never supplies one, and an ambiguous repository state (partially scaffolding) is not a route to guess. A consent gap is an open question: (0) provenance (search the repo's own docs and record where) → (1) research (concrete options) → (2) halt: run node scripts/needs-input.mjs <unit-dir>, paste the open-questions@1 block verbatim, stop with the questions carried in it. The dispatcher needs a unit folder, and consent gaps usually precede any unit — so the run first writes a scratch one (SPEC.md + decisions.md in a mktemp directory, deleted after the paste) and runs the dispatcher against that. Grammar and exit codes: orchestration-envelope's references/TURN_CONTRACT.md §Open questions. [target-dir] is optional — absent means the current directory, recorded.

Step 0 — Discover the project (always first)

Inspect the target dir ([target-dir], default cwd) before touching anything:

  • An existing agent guide (AGENTS.md, or a legacy CLAUDE.md), docs/, .github/? If so, do not clobber — check first whether it's an agentic-workflow scaffold (marker: an agent guide present and either docs/features/ROADMAP.md or a docs/workflow/ dir). If both markers are present, offer upgrade as the default action, alongside merge / adapt-in-place / abort — see Upgrade mode below. If an agent guide or docs/ exists but the markers are absent (a foreign scaffold), stay in bootstrap and ask merge / adapt in place / abort as before.
  • Detect the stack from manifests (package.json, pyproject.toml, go.mod, Cargo.toml, Gemfile, …) to propose gate commands and naming conventions.
  • Note the git state (is it a repo, what's the default branch, and the remote URL → forge: github.com → GitHub/gh, gitlab → GitLab/glab, else ask).

Progressive loading — bootstrap or upgrade, never both

The reference allowlist is exactly the six linked paths below. Never invent or read another references/ path. Step 0 selects exactly one route:

Hard rule for an existing Claude Code, Cursor, Copilot, or OpenCode scaffold: LOAD exactly references/UPGRADE.md. A missing committed safety adapter is upgrade work, not a missing vendor primitive. Do not load bootstrap or portability unless the runtime platform has no named adapter at all.

  • Bare/foreign repository: read bootstrap discovery, complete its interview, then read bootstrap write. Both the discovery and write routes load SERENA language servers for stack detection.
  • Existing agentic-workflow scaffold: read upgrade only. Its additive-only rule is absolute; do not replay bootstrap. The upgrade route loads SERENA language servers for the additive provisioning step.
  • Provisioning Engram on a host with no pi package: read Engram provisioning — detect, ask, register or instruct, report. Loaded by the bootstrap write route only (the pi package provisions itself, feature 66).
  • No named adapter exists for the detected runtime platform: add portability only for that fallback. Claude Code, Cursor, Copilot, and OpenCode are named supported adapters; a missing adapter file is repaired by upgrade and does not trigger portability.

All resources are one hop from this file. Existing files, hook consent, installation consent, and residual reporting are fixed contracts. Missing template/migration evidence is reported by the selected route, never filled by guessing. An existing OpenCode scaffold with only its safety adapter missing loads exactly upgrade and skips bootstrap plus portability.

Guardrails

  • Never overwrite an existing agent guide (AGENTS.md, or a legacy CLAUDE.md) or docs/ without explicit consent.
  • One guide, one name. AGENTS.md is the guide; a legacy CLAUDE.md is retired only in upgrade mode, only with an explicit yes, and only after any content unique to it is folded into AGENTS.md first. A user whose Claude Code release predates AGENTS.md support may keep it — that choice is reported as a residual, never treated as drift to repair.
  • Additive-only, never clobber (upgrade mode). Upgrade mode only adds blocks the project lacks and fills raw placeholders — it never rewrites or deletes a block the project already tailored, even if the current template changed that block too. A genuine re-tailor is a separate, explicitly requested bootstrap adapt-in-place run, never something upgrade mode does on its own. The urgency label seeding is additive-only the same way: create a missing urgent/fix-next label, never touch one that already exists (name, color, or description a project already customized).
  • Serena convention — tool and config, one consent question. .serena/project.yml is committed; project.local.yml and cache stay local. Never write .serena/ config, install the tool, register an MCP server or touch the global serena_config.yml (trusted_project_path_patterns) without an explicit yes — SERENA owns the single question and the fixed provisioning report. LSP never verifies documents — false positives happen when a file type's server is not listed (markdown/yaml/json are never auto-detected), a listed server that fails to start must be removed (one failure disables every server in the project), and LSP evidence stays TypeScript/JavaScript-only. Document verification is a script's job.
  • Engram provisioning is ask-first, never assumed (feature 66). Detect the engram binary, ask before writing any host MCP config, write the absolute path with the exact mcp --tools=agent argv, and report exactly what was written. An existing engram declaration is never overwritten, and an absent binary is a recorded residual — the documented install route is pi install npm:gentle-engram@latest, never the CLI's own setup subcommand, which keeps serving whatever version ran it until it is re-run.
  • Retrieval index scaffold and git hooks are consent-gated (AC22). The index surface — the committed .agentic-workflow/index.json config plus the three freshness hooks (post-merge, post-checkout, post-rewrite, all index-sync.sh installed into .git/hooks/) — is installed only after an explicit yes to the question "install the doc retrieval index scaffold and its git hooks?". Without consent: install nothing, record it as a residual (the entry point still runs and builds its index on first query — the hooks are only a freshness fast path), and never write .git/hooks/ or the config on a later visit without a fresh yes. The hooks are best-effort by contract (doc --sync --quiet, always exit 0 — a fast path never breaks git).
  • Never redefine the urgency label vocabulary here. skills/triage-issue /SKILL.md is the sole owner of the urgent/fix-next names, colors, and apply rules — this skill only seeds those two labels into the repo; it never invents a third label or changes what the two mean.
  • Docs-only scaffolding; no app code, no dependencies installed unprompted.
  • Architecture-agnostic: record the project's pattern, don't impose one.
  • Honest placeholders over invented specifics; flag what's left to fill.
  • Honor the project's Workflow conventions once present; on an existing repo, don't work on its default branch and never commit/push unless asked.

Unit document conventions (the adaptive lane)

The adaptive lane (feature 61) replaces the fixed pipeline with a single-unit- document model. Every NEW unit produces one SPEC.md under docs/features/<NN>-<slug>/ with 14 sections: Objective, Why, User outcome, Acceptance criteria, Impact, Non-goals, Future cost, Applicable tests, Known pre-existing issues, Tasks, Evidence, Progress log, Next, References.

Conventions written into the project's AGENTS.md:

  • Triage: the lane conductor (/unit-lane / workflow-status) returns a deterministic ordered list of steps (research, design, plan, implement, tests, evidence, review, docs, release).
  • Guards: scripts/diff-guard.mjs measures git diff --stat at boundaries; overflow → mandatory re-triage. Anti-gaming: "NEVER shrink a diff by deleting comments, blank lines, docs or tests."
  • Evidence rows: one per AC — what was run, exit/digest, output (≤2 lines), verified-by. Verified, not claimed.
  • Progress log: dated entries (YYYY-MM-DD HH:MM) per step taken.
  • Commit format: type(scope): description (conventional commits).
  • Roadmap status: idea → defined → planned → in-progress → done.

These are written by bootstrap (fresh) and upgrade mode (additive-only for pre- lane installs). A pre-lane project gets only: the lane conventions section in AGENTS.md, the unit doc template under docs/features/_TEMPLATE/, and the docs-map row for the unit doc.

Normalized Repository State

Seed docs/workflow/REPOSITORY_STATE.md from the template. Explain that discovery freezes evidence before planning and only the resolver updates facts.

Architectural invariants

Offer docs/architecture/ARCHITECTURAL_INVARIANTS.md as an optional project contract for long-lived architectural rules. Its entries must name a stable ID, repository evidence, and the authority that can change the rule. Do not infer a rule from the implementation or a feature SPEC. A project without this document remains compatible; record n/a: no project invariants declared in later workflow artifacts rather than creating one silently.

Portability

The scaffold is vendor-neutral; only hook activation differs. When the detected agent has no named adapter, follow portability and keep it as an explicit residual. A supported Claude Code, Cursor, Copilot, or OpenCode adapter does not load this fallback.

Relationship to other skills

  • npx degit gtrabanco/agentic-workflow/template — the static copy this skill adapts. Use that when you want the raw scaffold and will fill it yourself.
  • docs/workflow/PORTABLE_PROMPT.md — regenerates the skills adapted to a project (behavior). This skill adapts the substrate (docs). Complementary.
  • After init: discover-repository-state → workflow-status (to see what's startable) → /unit-lane (the lane conductor); run audit-docs to confirm the scaffold is coherent.

Done when

  • A tailored AGENTS.md + docs/ scaffold + .github/ templates exist in the target, unused folders pruned, residual placeholders flagged, the platform's companion review skills are recorded (and offered), and the urgent/ fix-next labels are seeded (scaffold) or additively reconciled (upgrade), and every accepted safety adapter is active and fixture-tested — or explicitly listed as a residual when its hook API/dependency was unavailable. The adaptive lane conventions (unit document, triage, catalog steps, guards, evidence, commit formats) are written into AGENTS.md.

  • Serena is provisioned and reported: the one consent question was asked, the project config written (or skipped with its reason), the tool installed and its MCP server registered for the detected platform — or each refused/absent item recorded as a residual with its reason — and the fixed provisioning report states the health check per listed server. The run completes either way.

  • The closing → Next: block is printed (plus the offer to install the skills):

    → Next: /discover-repository-state — freeze repository evidence before planning
      · raw idea → /workflow-status → /unit-lane (the lane conductor)
      · next roadmap entry → /unit-lane (tridirection decides catalog steps)
      · confirm the scaffold is coherent → /audit-docs
    

Comments

Markdown supported