Prompt file imported from revoluxe-ai/adv-bot (
.cursor/commands/opsx-meta-bootstrap.md). Fill in{{arguments}}before use. Copyright stays with the author.
TARGET OVERRIDE — HIGHEST PRIORITY
Contract: OPSX-GAME-META-BOOTSTRAP-01
Runtime class: ACTIVE
Precedence: This override wins for target paths, write boundary, and bans.
Target authority paths (local)
- Commands / rules / pipeline:
.cursor/commands/**,.cursor/rules/**,.cursor/pipeline/** - OPSX project-local:
.opsx/**except frozen upstream default - Staging only:
.tmp/opsx-bootstrap/**
Central write authority (SAVE only)
central_root/bootstrap/reports/**only (create dir if needed)- Never overwrite
bootstrap/requirements.md/ profile trees from SAVE
Hard target bans
- Do not install dependencies / modify
package.jsonor lockfile. - Do not access production / Kubernetes / secrets.
- Do not push, open PR, rebase, force, or deploy.
- Do not write
src/**,public/**,backend/**app code,.env*. - Do not import foreign product dumps:
openspec/changes/**,openspec/archive/**, productopenspec/specs/**content. - Do not blind-replace
.opsx/upstream/**unless Owner explicitKEEP=upstream-refreshin args. - Do not run
/opsx-projectize:GOor/opsx-meta-import-commandGO as a side effect. - Do not commit. Never PASS-by-absence.
- Do not assume
vue-npmor any product stack adapter — seed is stack-agnostic. GOandSAVEtogether →FAIL_CLOSEDREASON: ASK_ONE_MODE.- Bare
GOmust not apply all install steps in one turn (useSTEP=all).
Projectization gate
EXEMPT from OPSX_PROJECTIZATION_REQUIRED so empty repos can seed.
After steps complete, if lock not COMPLETE → hand off /opsx-projectize
(do not auto-GO).
/opsx-meta-bootstrap
Happy path (Owner) — small steps
- Copy only this file into the other repo:
.cursor/commands/opsx-meta-bootstrap.md - Prefer a central tree at default location (see Central resolution).
- Repeat until steps are done:
/opsx-meta-bootstrap GO
Each bare GO applies one next incomplete step:
1 bind → 2 meta → 3 lifecycle → 4 support
Then, if lock incomplete: /opsx-projectize.
One-shot (large, opt-in only):
/opsx-meta-bootstrap GO STEP=all
Lessons to central (no local seed):
/opsx-meta-bootstrap SAVE
IMPLEMENTATION_STATUS: IMPLEMENTED
RUNTIME_STATUS: ACTIVE
CONTRACT_ID: OPSX-GAME-META-BOOTSTRAP-01
PRODUCT_WRITER: NO
STACK_ADAPTER: none (opsx-lite process only)
UPSTREAM_OVERWRITE_DEFAULT: NO
DEFAULT_SCOPE: next incomplete STEP (1..4)
HAPPY_PATH: /opsx-meta-bootstrap GO # repeat
OPT_IN_LARGE: /opsx-meta-bootstrap GO STEP=all
LESSON_PATH: /opsx-meta-bootstrap SAVE
Shared path sets: .opsx/shared/bootstrap-profile.md (or embedded lists below
when that file is not local yet).
Purpose
- One-file first contact for any local OPSX state.
- Requirements-first when central pack exists; else EMBEDDED_DEFAULT.
- Bind central and install OPSX in small steps.
- Optional
SAVE→ centralbootstrap/reports/. - Import remains for extras outside the four steps.
Owner clarity — separate import?
| After | Need import? |
|---|---|
| Steps 1–4 complete | No for those sets |
| Want commands outside steps | Yes |
| Only step 1 done | Continue GO (or import extras — not required) |
| Lock not COMPLETE after steps | /opsx-projectize |
When to use
- Empty / foreign repo with only this command → repeat
GO. - Partial / COMPLETE: fill next missing step + rebind →
GO. - Capture bootstrap friction →
SAVE.
When not to use
- Single extra from catalog →
/opsx-meta-import-command - Only finish lock →
/opsx-projectize - Publish snapshot →
/opsx-meta-update-snapshot - Product work →
/opsx-explore
Authority boundary
- No
GO/ noSAVE: READ_ONLY plan. - Exact
GO: APPLY one step (orSTEP=all/ explicit KEEP). - Exact
SAVE: centralbootstrap/reports/only. - Does not own projectize
:GO, import GO, snapshot/index, or commit.
User input
{{arguments}}
Parameters
| Token | Required | Meaning |
|---|---|---|
GO |
seed | Plan + apply next step (default) |
SAVE |
lesson | Chat lesson → central report only |
STEP=next |
no | Same as bare GO |
STEP=1 / bind / PROFILE_KEEP=core |
no | Step 1 only |
STEP=2 / meta |
no | Step 2 only |
STEP=3 / lifecycle |
no | Step 3 only |
STEP=4 / support |
no | Step 4 only |
STEP=all / PROFILE_KEEP=all |
no | All incomplete steps in one APPLY |
central=<path|zip> |
no | Override central |
repo_family_id= |
no | sources.yaml / report name |
PROFILE_KEEP= / KEEP= |
no | Explicit path list |
packet= |
no | Reuse prior DIFF |
PROFILE_KEEP=recommended → treat as STEP=next (compat; not big-bang).
Modes
| Input | Mode | Writes |
|---|---|---|
no GO / no SAVE |
READ_ONLY |
.tmp/opsx-bootstrap/<UTC>/ DIFF only |
exact GO |
APPLY |
local seed/bind for selected step(s) |
exact SAVE |
SAVE |
central bootstrap/reports/** only |
GO + SAVE |
FAIL_CLOSED |
none |
Central resolution (auto)
First hit wins; record in CENTRAL: / CENTRAL_RESOLVE::
central=argument if present- Local
.opsx/sources.yaml→central_root - Env
OPSX_CENTRAL_ROOT - Repo-relative
../opsx-central(+bootstrap/profile/sources/*/*) - Else unresolved (
CENTRAL_RESOLVE: failed)
Requirements load (every mode, first)
- If central resolved, try:
bootstrap/requirements.mdbootstrap/instruction.mdbootstrap/profile/.opsx/shared/bootstrap-profile.md- profile-root
.opsx/shared/bootstrap-profile.md
- Readable →
REQUIREMENTS_SOURCE: CENTRAL(union with embedded; never shrink below STEP_1_BIND). - Else →
REQUIREMENTS_SOURCE: EMBEDDED_DEFAULT. - Missing requirements file alone must not block preview/
GO. GOstill needs a resolvable central tree/zip for file bytes.- Always emit
REQUIREMENTS_SOURCE.
Step selection (GO)
- Inventory each STEP_1..4:
COMPLETEif no NEW gaps (CONFLICT/skip ≠ block). BOOTSTRAP_STEP_STATUS: 1=… 2=… 3=… 4=…- Choose apply set:
- bare
GO/STEP=next→ first incomplete step only; STEP=N/ alias → that step only;STEP=all→ union of all incomplete steps;- explicit KEEP → those paths only (still CORE gate on step 1).
- bare
- If all steps complete →
STATUS: BIND_APPLIEDor no-op seed;NEXT_ACTION: /opsx-projectizeor none / commit.
Local state notes
| LOCAL_STATE | Behavior |
|---|---|
OPSX_ABSENT |
Step 1 first (bind stubs + import); projectization REQUIRED |
OPSX_PARTIAL / PROJECTIZATION_REQUIRED |
Next missing step; CONFLICT → skip |
PROJECTIZATION_COMPLETE |
Next missing step NEW only; never downgrade COMPLETE |
Steps — READ_ONLY
- Detect
LOCAL_STATE; resolve central; requirements load. - Inventory all four steps; compute next step.
- Stage DIFF for next step (and summarize later steps).
- Emit
BOOTSTRAP_DIFF_READYwithAPPLY_STEP:andNEXT_STEP_AFTER:.
Steps — APPLY (exact GO)
- Exact
GO; reject ifSAVEalso present. - Resolve central; if failed →
BLOCKED_NEEDS_CENTRAL. - Requirements load; same-turn plan unless
packet=. - Select step set (above). Bare
GO≠ all steps. - CORE gate when applying step 1: import-command must be in KEEP if central has it.
- Apply KEEP for that step only; bind
sources.yamlwhen step 1 touches it; seed projectizationREQUIREDif absent; never set/downgrade COMPLETE. - Registry stubs as needed;
MERGE_RECEIPT.md. - Emit
SEED_APPLIED/BIND_APPLIEDwithAPPLY_STEPand remaining steps. - NEXT:
- later steps incomplete →
/opsx-meta-bootstrap GO - all complete + lock incomplete →
/opsx-projectize - all complete + COMPLETE → import extras only /
/opsx-meta-commitif dirty
- later steps incomplete →
Steps — SAVE (exact SAVE)
- Exact
SAVE; reject ifGOalso present. - Resolve central; if failed →
BLOCKED_NEEDS_CENTRAL. - Requirements load (informational).
- Analyze this chat for bootstrap lessons only (no product/secrets/src).
- Write one new file:
<central_root>/bootstrap/reports/<UTC>_<repo_family_or_unknown>.md - Minimum sections: UTC, REPO_FAMILY, LOCAL_STATE, CENTRAL, REQUIREMENTS_SOURCE, SYMPTOMS, GENERALIZED_LESSON, PROPOSED_INSTRUCTION_DELTA, CHAT_EVIDENCE_REFS, NON_GOALS.
STATUS: REPORT_SAVED; do not edit local process or requirements.md.
Merge safety rules (GO)
- Preserve local TARGET OVERRIDE.
- Bare
GO= one step only. - CONFLICT → skip unless explicit KEEP path.
- No upstream/product/env writes.
- Partial failure → stop; report applied vs skipped.
- Do not chain projectize/import/snapshot/index/commit.
Output contract (every run)
STATUS:
MODE: READ_ONLY | APPLY | SAVE
WHAT_HAPPENED:
WHY:
LOCAL_STATE:
CENTRAL:
CENTRAL_RESOLVE: arg | sources.yaml | env | default_relative | failed
REQUIREMENTS_SOURCE: CENTRAL | EMBEDDED_DEFAULT
APPLY_STEP: none | 1|2|3|4 | all | explicit
BOOTSTRAP_STEP_STATUS: 1=<ok|gap> 2=… 3=… 4=…
NEXT_STEP_AFTER: none | 1|2|3|4
IMPORT_COMMAND_STATUS: MISSING | PRESENT | DIVERGED | n/a
SEPARATE_IMPORT_NEEDED_FOR_IMPORTER: no | yes | n/a
REPORT_PATH: none | <central path>
STAGING_DIR:
DIFF_SUMMARY:
KEEP_APPLIED: none | <list>
OWNER_DECISION_REQUIRED: none | central=… | …
NEXT_ACTION:
DO_NOT_DO_YET:
ORIENTATION_HINT:
LANE: META
STATUS: <same as STATUS>
NEXT_META: /opsx-meta
NEXT_ACTION: <same as NEXT_ACTION>
STATUS values
BOOTSTRAP_DIFF_READY
SEED_APPLIED
BIND_APPLIED
REPORT_SAVED
BLOCKED_NEEDS_CENTRAL
FAIL_CLOSED
Failure / recovery
| Condition | STATUS | Recovery |
|---|---|---|
GO+SAVE |
FAIL_CLOSED | one mode only |
central missing on GO/SAVE |
BLOCKED_NEEDS_CENTRAL | central= / env / ../opsx-central |
| requirements missing | continue | EMBEDDED_DEFAULT |
| step 1 without import in KEEP | FAIL_CLOSED | include import or bare GO on step 1 |
| after step, more steps remain | SEED_APPLIED | /opsx-meta-bootstrap GO |
| all steps done, lock incomplete | SEED_APPLIED | /opsx-projectize |
Regression checks
- Bare
GOapplies at most one of steps 1..4 -
STEP=allrequired for one-shot full set -
PROFILE_KEEP=recommended≡STEP=next(not big-bang) - Every run emits
REQUIREMENTS_SOURCE+APPLY_STEP/ step status - SAVE writes only
bootstrap/reports/** -
required_adapters: ["opsx-lite"]only - No auto projectize:GO / import GO / commit
Embedded STEP_1_BIND
.cursor/commands/opsx-meta-bootstrap.md
.cursor/commands/opsx-meta-import-command.md
.cursor/commands/opsx-projectize.md
.cursor/commands/opsx.md
.cursor/commands/opsx-meta.md
.opsx/shared/bootstrap-profile.md
.opsx/shared/meta-orientation.md
.opsx/shared/command-discovery.md
.opsx/sources.yaml
.opsx/projectization.yaml
.opsx/lock.yaml
.opsx/manifest.yaml
.opsx/registry/command_activation.ndjson
.opsx/registry/provenance.ndjson
Embedded STEP_2_META
.cursor/commands/opsx-meta-commit.md
.cursor/commands/opsx-meta-discover.md
.cursor/commands/opsx-meta-consult.md
.cursor/commands/opsx-meta-design-command.md
.cursor/commands/opsx-meta-fix-command-defects.md
.cursor/commands/opsx-meta-update-snapshot.md
.cursor/commands/opsx-meta-update-index.md
.cursor/commands/opsx-meta-export-pack.md
Embedded STEP_3_LIFECYCLE
.cursor/commands/opsx-explore.md
.cursor/commands/opsx-new.md
.cursor/commands/opsx-ff.md
.cursor/commands/opsx-continue.md
.cursor/commands/opsx-update.md
.cursor/commands/opsx-bound-scope.md
.cursor/commands/opsx-apply.md
.cursor/commands/opsx-verify.md
.cursor/commands/opsx-archive.md
.cursor/commands/opsx-commit.md
.cursor/commands/opsx-pipeline.md
.cursor/commands/opsx-source-resolution.md
.cursor/commands/opsx-execution-preflight.md
.cursor/commands/opsx-adapt-project.md
Embedded STEP_4_SUPPORT
.opsx/adapters/**
.opsx/project/manual_review.md
.opsx/import/README.md
.opsx/shared/lifecycle.md
.opsx/shared/evidence-contract.md
Authoritative when present: .opsx/shared/bootstrap-profile.md.contract_id: OPSX-WB-META-BOOTSTRAP-01
Contract: OPSX-WB-META-BOOTSTRAP-01
CONTRACT_ID: OPSX-WB-META-BOOTSTRAP-01
Portable central bind (committed files)
Hard rule for any write into committed process files
(.opsx/sources.yaml, .opsx/projectization.yaml, .opsx/MERGE_RECEIPT.md):
- Never persist machine-absolute or user-home
central_root(e.g.C:/Users/…,/home/…,/Users/…) — username leak + non-portable. - Prefer omit
central_rootand bind viacentral=/OPSX_CENTRAL_ROOT/default_relative. - Persist a relative
central_rootonly when it matches the portable default (../opsx-central) for that workspace layout. - Chat/
CENTRAL:output may show the resolved absolute path for this machine. MERGE_RECEIPT.mdrecordsCENTRAL_RESOLVE:+ redactedCENTRAL: <CENTRAL>(and<CENTRAL>/…in Actions); never raw home paths.- Apply KEEP for that step only; bind
sources.yamlwhen step 1 touches it (portable central bind only — never write machine-absolutecentral_root); seed projectizationREQUIREDif absent; never set/downgrade COMPLETE; never add machine-absolutecentral_rootto projectization. - Registry stubs as needed;
MERGE_RECEIPT.mdwith redacted<CENTRAL>token. - Do not persist machine-absolute / user-home
central_rootinto committed process files (see Portable central bind).
