agentsclimarketplace

Gabe scope addition

Skill khujta/gabe-suite/skills/_archive/gabe-scope-addition

Additive scope change. Inserts new REQs / phases / refs / constraints without changing SCOPE.md direction. Phases use decimal IDs (e.g., 2.1). SCOPE.md scope_version does NOT bump; phases_version bumps. Usage (direct): /gabe-scope-addition <description>From its SKILL.md

Install
npx -y skills add khujta/gabe-suite --skill gabe-scope-addition

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.5 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

Gabe Scope Addition — additive scope evolution

Gabe execution contract (E1–E7)

This skill runs under the suite execution contract — E1 EVIDENCE · E2 RUN-BEFORE-✅ · E3 NO SILENT DOWNGRADE · E4 REUSE FIRST · E5 STATE SYNC · E6 MISSING ANCHOR = STOP · E7 REPORT WHERE — floors, not ceilings; a skill's own gate may be stricter, never looser. Full text: ../gabe-docs/references/execution-contract.md (if that file is missing, E6 applies — STOP).

Handles additive scope changes. Inserts new content without touching primary user, success criteria, non-goals, architecture posture, or authoritative refs. All of those changes route to /gabe-scope-pivot instead.

Invariants:

  • SCOPE.md scope_version: frontmatter stays the same (additions don't bump major version).
  • SCOPE.md last_scope_event: updates to today.
  • SCOPE.md phases_version: bumps by 1 (any -change bumps phases_version).
  • Change Log (§15) appends addition row — never rewrites existing rows. One log for both premise and phase-arc changes.
  • Prior phase IDs are immutable. New phases use decimal IDs (e.g., 2.1 between 2 and 3).
  • Prior REQ IDs are immutable. New REQs append with the next sequential ID.

Rendering note. Output templates in this spec wrapped in bare triple-backtick fences are spec-meta delimiters — render their contents as plain markdown at runtime. Tagged fences (```jsonl) stay fenced. See gabe-docs/SKILL.md § "Runtime output rendering convention".

Procedure

Step 1: Pre-flight

Same as /gabe-scope-change pre-flight — SCOPE.md must exist, no active session.

Read current SCOPE.md (including its ## Phases section) + scope-references.yaml. Parse into structured state for drafting.

Step 2: Detect addition type

Parse description to detect what's being added:

TypeExample descriptionAction
New REQ"Add REQ for export-to-markdown"Append REQ-NN+1 to §12; map to existing SC or new phase
New SC (non-inverting)"Add SC tightening existing REQ-02 acceptance signal"Append SC-NN+1 to §7; wire to existing REQ
New phase"Insert observability phase between Phase 2 and 3"Insert phase with decimal ID 2.1
New reference"Add suggestive ref for wireframes"Append to scope-references.yaml (contextual/suggestive only; authoritative adds route to pivot)
Constraint tightening"Tighten budget to $10/mo"Update §9 Constraints; must remain feasible for existing SCs
Non-goal addition"Add NG for multi-tenant"Append NG-NN+1 to §8

Ambiguous additions → prompt for clarification. Never guess the type.

Step 3: Draft with Sonnet

Invoke prompts/users-and-non-users-drafter or prompts/non-goals-generator or prompts/req-decomposer etc. depending on detected type. Pass current SCOPE state + description as context.

Write targets (all appends, never rewrites):

  • .kdbp/SCOPE.md — add the new entity with its anchor ({#req-NN}, {#sc-NN}, etc.)
  • .kdbp/SCOPE.md ## Phases — if new phase, insert with decimal ID + update Phase Table + Dependency Graph
  • .kdbp/scope-references.yaml — if new ref
  • .kdbp/SCOPE.md §15 Change Log — append addition row (covers phase-arc changes too — no separate roadmap change log)

Step 4: Coverage re-check

Run same deterministic coverage validator as Step 7 of /gabe-scope:

  • Every SC has ≥1 REQ
  • Every REQ in exactly one phase

If the addition breaks coverage (e.g., new SC with no REQ yet), prompt: "Coverage now incomplete. Add REQ for new SC now? [y/N]" Loop until fixed or user --forces.

Step 5: Confirm + commit

Show diff preview. User approves → write files. Offer git-commit prompt (same flow as /gabe-scope Step 8f).

Append to CHANGES.jsonl:

{"ts":"2026-04-21T15:30:00Z","event":"scope_addition","scope_version":1,"phases_version":2,"addition_type":"new_phase","entity_ids":["2.1"]}

Decimal ID rules

  • New phase between integer phases N and N+1 → N.1, N.2, ...
  • New phase after N.1N.2
  • No nested decimals (N.1.1 forbidden — if depth needed, pivot)
  • Existing integer IDs never renumber

Flags

  • --force — bypass coverage check. Records finalize_forced_at + rationale.

Edge cases

User invokes directly (not via /gabe-scope-change). Allowed, but the classifier gate is skipped. Log classifier_skipped: true in CHANGES.jsonl. Recommend user use /gabe-scope-change instead.

Addition that implicitly becomes a pivot (e.g., "add REQ" but the REQ text changes an SC's observable truth). Detect via a mini-classifier call on the drafted output. If detected, abort with: "This addition appears to modify existing SC semantics. Pivot recommended. Re-run as /gabe-scope-change or --force-addition to override."

Phase decimal ID collision. If 2.1 already exists, new insert gets 2.2. Auto-assign.

No argument given. Prompt for description; exit if empty.

Integration

Called by /gabe-scope-change (routed) or directly by user (not recommended). Does not chain further.

Command version

v1.0.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,144. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.