| name | marketplace-setup |
| description | Set up or upgrade this harness plugin's project-side half. Installs the engine sliver (scripts, schemas, templates) into your project and gitignores it, and refreshes the managed CLAUDE.md chapters. Run after installing the plugin and again after every plugin update. |
Marketplace setup
This plugin ships the harness surfaces — skills, agents, and hooks — into your tool's read-only plugin cache. Its skills invoke deterministic engines by project-relative paths: scripts/handoff.py, scripts/doctor.py, schemas/scratch/…. Those engines must live in your project, not the cache. This step installs them and keeps them untracked — the marketplace channel keeps the harness runtime out of git.
Plugin skills load at session start, so restart your tool after installing before you invoke this. In Claude Code it is namespaced by the plugin: /generic-junie:marketplace-setup.
Run it (Claude Code)
bash "${CLAUDE_PLUGIN_ROOT}/setup.sh" "$PWD"
Run it (any tool)
From your project root, run the bundled installer with the plugin's install directory:
bash <plugin-install-dir>/setup.sh
Find <plugin-install-dir> in your tool's plugin cache — Claude exposes it as $CLAUDE_PLUGIN_ROOT; for Copilot CLI and Junie CLI it is the marketplace/extension cache directory for agentic-harness. The script self-locates, copies its bundled _engine/ into your project, and appends the gitignore block.
What it installs
scripts/ — the engines (handoff.py, doctor.py, grading.py), their tests, and the doctor manifest.
schemas/scratch/ — the handoff record schemas.
.claude/templates/ — the plan and escalation templates.
All gitignored, so they stay untracked like every harness runtime file.
It also refreshes the harness-managed chapters of your CLAUDE.md (Agent Usage, Memory, Writing Standards, Scratch Directory, Documentation Updates) from the bundled source, in place by heading — the marketplace equivalent of the copy channel's automatic refresh. Only those chapters are written; the rest of CLAUDE.md is yours. If you have no CLAUDE.md yet, this step skips it; scaffold it first (next section), then re-run setup.
After setup
The plugin's skills now resolve their engine calls against your project. The remaining project-owned files — scripts/layout.toml and the docs/ briefs, plus CLAUDE.md if you have not created it — are yours to provide. Scaffold them with the harness init, which runs from a clone of the reference, not from this plugin:
git clone https://github.com/woditschka/agentic-coding-reference
cd agentic-coding-reference && claude
/init <your-project-path> marketplace
init fills the managed chapters, and the explicit marketplace argument writes the channel declaration. Never omit it: marketplace is declaration-only, and a bare /init infers manifest from the gitignored runtime — a later /materialize would then install the full runtime beside the plugin. Re-run this setup afterward — it verifies the declaration and brings the engines and chapters current. Then the pipeline is ready.
Upgrading
A plugin update advances only the cached surfaces; your project's engine sliver and managed chapters stay at the old version until this setup re-runs. After every plugin update:
- Update the plugin from the marketplace — for Claude Code refresh the marketplace, then update the plugin; other tools use their update command — and restart the tool.
- Re-run this skill (or
setup.sh by hand, § Run it).
The doctor surfaces a missed re-run: on this channel run it as python3 scripts/doctor.py check --plugin-version-date <plugin-root>/VERSION-DATE (Claude Code: ${CLAUDE_PLUGIN_ROOT}; other tools: the plugin cache directory named above). A stamp/plugin mismatch reports an advisory WARN version-skew naming this skill.
Re-runs are additive: an update that retires an engine file leaves the old copy behind, gitignored and inert. Delete it by hand when an upgrade note names one — setup never removes files it did not just copy.
Upgrade note — the package-layout release (ADR 2026-07-17 runtime-package-layout in the reference). The flat engine layout retired; the engine internals now live in packages (scripts/handoff/, scripts/grading/, scripts/changeset/) behind unchanged scripts/ launchers, and the suites in scripts/tests/. If your scripts/ still carries any of these pre-rename files, delete them (all import-inert but confusing): handoff_schema.py, handoff_records.py, handoff_route.py, handoff_view.py, brief_doctor.py, brief-expectations.toml, test_handoff.py, test_handoff_schema.py, test_handoff_records.py, test_handoff_route.py, test_handoff_view.py, test_brief_doctor.py, test_cc_accounting.py, test_score_change.py (the flat copies at scripts/ root — the new suites live under scripts/tests/). This release also renamed the two remaining engines: score-change.py became grading.py (now the scripts/grading/ package) and cc_accounting.py became accounting.py. After upgrading, delete the old scripts/score-change.py and scripts/cc_accounting.py; their retired flat suites are already in the delete list above.