Skip to content
Back to skills

Vendor Stack

ASecurity

Install the full swarm stack into a target repo: vendor the XYZ harness (relay/marathon/consult/self-improve + `tick`) into `<target>/.xyz/`, then optionally install the PDDA doc-governance runtime (`PROJECT/PDDA.md` + `utils/pdda/*.sh`). Both installers self-locate, are idempotent, and register the target into their own per-user upgrade registry so a later `xyz-sync` / `pdda-sync push` can carry updates forward. Trigger on "/vendor-stack", "vendor XYZ (and PDDA) into <repo>", "install the st...

  • 5 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
toolspythongoshellbashnoderailsgit

Works with

  • claude code

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 25, 2026

npx -y skills add HiQS-Labs/XYZ-forge --skill vendor-stack --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vendor Stack?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Vendor Stack
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hiqs-labs-vendor-stack/badge)](https://www.skillsdirectory.com/skills/hiqs-labs-vendor-stack)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: vendor-stack
description: >-
  Install the full swarm stack into a target repo: vendor the XYZ harness
  (relay/marathon/consult/self-improve + `tick`) into `<target>/.xyz/`, then
  optionally install the PDDA doc-governance runtime (`PROJECT/PDDA.md` +
  `utils/pdda/*.sh`). Both installers self-locate, are idempotent, and register
  the target into their own per-user upgrade registry so a later `xyz-sync` /
  `pdda-sync push` can carry updates forward. Trigger on "/vendor-stack",
  "vendor XYZ (and PDDA) into <repo>", "install the stack / harness + governance
  into <repo>", "set up XYZ and PDDA in this repo", "onboard <repo> to the swarm
  stack". For XYZ only, `relay-automation/xyz-vendor.sh <repo>` is enough — reach
  for this skill when you want the harness AND governance, or want to be asked.
---

# vendor-stack — install XYZ + PDDA into a target repo

Two optional subsystems from one source, one onboarding step. This skill **orchestrates** the two
canonical installers; it does not reimplement them.

- **XYZ harness** — `relay-automation/xyz-vendor.sh` mirrors the harness into
  `<target>/.xyz/` (a complete, drift-free install: relay, marathon, consult,
  self-improve, `bin/tick`, `skills/`, `test/`). Registers to
  `~/.config/xyz/registry.tsv`.
- **PDDA governance** — Forge's `utils/pdda/pdda-install.sh` drops the doc contract
  (`PROJECT/PDDA.md`) + runnable checks (`utils/pdda/*.sh`) into the target and
  seeds the `PROJECT/**` lifecycle tree. Registers to
  `~/.config/pdda/registry.tsv`.

## Why a skill and not one script

The harness vendor command stays non-interactive. This skill owns the optional
“also install governance” choice and calls Forge's existing installers in sequence.
The harness and governance retain separate target registries and installed paths.

## Preconditions

- You are standing in (or can point at) an **XYZ Forge** clone — this
  skill ships inside it at `skills/4-occasional/vendor-stack/`, so it resolves the harness
  root from its own location. `bin/tick` and `src/` must be present.
- Use an updated Forge checkout containing `utils/pdda/pdda-install.sh`; no separate PDDA clone is required.
- `bash`, and for PDDA also `node` (its `pdda-lib.sh` shells to node for JSON).
- The target repo directory exists. It need not be a git repo, but both
  installers add machine-local paths (`.xyz/`, PDDA activity logs) to its
  `.gitignore`, so a git repo is the normal case.

## Procedure

### 1. Resolve the Forge source

The harness root is this skill's grandparent dir (`skills/4-occasional/vendor-stack/../..`).
Resolve the PDDA distribution source with the shipped resolver — never hardcode a path:

```bash
HARNESS="$(cd "$(dirname "$0")/../.." && pwd)"        # or: git rev-parse --show-toplevel from a harness clone
PDDA="$(skills/4-occasional/vendor-stack/find-pdda.sh --root)"     # exits non-zero if unresolved
```

`find-pdda.sh` uses an explicit `$PDDA_REPO`/`$PDDA_HOME` override or this
skill's owning Forge tree. A stale override is an error, never a silent fallback.
`--check` reports the resolved source. An ordinary governance-only target is not a source.

### 2. Vendor the XYZ harness (always)

```bash
"$HARNESS/relay-automation/xyz-vendor.sh" /abs/path/to/target-repo
```

This is idempotent: re-running re-mirrors and re-stamps `<target>/.xyz/VERSION`.
It also gitignores `.xyz/` and writes the XYZ registry row.

### 3. Ask about PDDA

Ask the user plainly: **"Also install PDDA doc-governance into this repo?"** —
XYZ is the harness; PDDA is an opt-in governance layer that not every
repo wants. Default to **yes** for repos that will carry `PROJECT/**` docs and a
roadmap; skip for a throwaway or a repo that already has its own doc contract.
If PDDA did not resolve in step 1, say so and proceed XYZ-only.

### 4. Install PDDA (if the user said yes)

```bash
"$PDDA/utils/pdda/pdda-install.sh" /abs/path/to/target-repo          # observe mode, idempotent, self-registers
```

Prefer the **no-flag** form on first install: it installs in `observe` mode
(report-only, non-destructive) and never clobbers existing seeds. Do **not** pass
`--force` (it overwrites seed ledgers and startup-doc scaffolds). Pass
`--with-startup-docs` only if the target wants the ROUTER/AGENTS scaffold and
does not already have its own. Re-running later upgrades in place.

### 5. Check and prompt for `ROUTER.md` updates (GH-353)

After vendoring or updating XYZ in `<target-repo>`:

Run the router roadmap audit check:
```bash
python3 "$HARNESS/utils/py/router_audit.py" --check /abs/path/to/target-repo
```

If `ROUTER DRIFT` is reported:
The LLM MUST inspect the reported mode (or `--json` output) and prompt the user for confirmation before modifying the target repository's `ROUTER.md`:
- **If releases mode is active (`releases.db` or `ROADMAP_SOURCE=releases`):**
  > *"The target repository `<target-repo>` has releases mode enabled (`releases.db`), but its `ROUTER.md` still lists `ROADMAP.md` as active instead of frozen. Would you like me to update `ROUTER.md` to mark `ROADMAP.md` as frozen and reference `releases_app.py roadmap list` and `releases.db`?"*
- **If legacy mode is active (no releases DB):**
  > *"The target repository `<target-repo>` is in legacy roadmap mode, but its `ROUTER.md` references releases-mode directives (`releases_app.py roadmap list` or frozen `ROADMAP.md`). Would you like me to update `ROUTER.md` to restore active `ROADMAP.md` instructions?"*

Upon user approval:
```bash
python3 "$HARNESS/utils/py/router_audit.py" --fix /abs/path/to/target-repo
```

### 6. Verify

```bash
cd /abs/path/to/target-repo
./.xyz/bin/tick --help >/dev/null && echo "tick OK"        # XYZ runnable
grep -qx '.xyz/' .git/info/exclude && echo ".xyz excluded (repo-local, GH-642)"
utils/pdda/pdda.sh run && echo "PDDA runs"                  # only if PDDA installed
```

Then confirm the registry rows landed (this is the "called home" proof):

```bash
grep -F "$(cd /abs/path/to/target-repo && pwd)" ~/.config/xyz/registry.tsv
grep -F "$(cd /abs/path/to/target-repo && pwd)" ~/.config/pdda/registry.tsv   # if PDDA installed
```

## Upgrades (the "call home" payoff)

Each tool registered the target into its own machine-local registry, so future
updates are pull-based and per-tool — you never re-run this skill to upgrade:

- **XYZ:** `relay-automation/xyz-sync.sh check --all` (reports harness drift and `ROUTER.md` drift),
  `xyz-sync.sh update <target>/.xyz` (re-vendor a pinned copy).
  When `ROUTER DRIFT` is flagged during checks or updates, prompt the user before running `router_audit.py --fix`.
- **PDDA:** from the Forge clone, `utils/pdda/pdda-sync.sh status`,
  `pdda-sync.sh push [<target>]` (push the canonical runtime to registered
  targets; only advances files that genuinely changed).

Registries are per-user, per-device, and never committed. `XYZ_REGISTRY` /
`PDDA_REGISTRY` relocate them; `--no-register` on either installer skips the row.

## Notes & guardrails

- **Idempotent / re-runnable.** Both installers upgrade in place; re-running the
  skill on an already-onboarded repo is safe.
- **Independent failure.** XYZ installing does not depend on PDDA and vice versa.
  A missing governance installer is reported explicitly; XYZ-only remains available.
- **Non-destructive PDDA default.** First PDDA install is `observe` mode; it will
  not move stale docs or block. Enforcement is opt-in later.
- **Discoverability.** This skill lives in the repo's `skills/` (which Claude Code
  does not auto-scan). Run `skills/4-occasional/vendor-stack/install.sh` once to symlink it
  into `~/.claude/skills/` — same pattern as `relay-xyz`.

Files in this skill

  • SKILL.md7.5 KB
  • find-pdda.sh3 KB
  • install.sh2.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…