Files
ss-tools/.agents/commands/speckit.semantics.md
2026-08-26 13:13:02 +03:00

2.8 KiB

description
description
Maintain semantic integrity — Axiom MCP when connected, otherwise grep/outline (zombie mode).

User Input

$ARGUMENTS

You MUST consider the user input before proceeding (if not empty).

Goal

Ensure the repository adheres to GRACE-Poly (semantics-core). Prefer Axiom MCP search/audit when those tools exist in the session. If they do not (Grok TUI), use zombie-mode grep from semantics-core §VIII and, when present, scripts/semantic_health.py. Never invent Axiom calls or hardcoded health numbers.

Operating Constraints

  1. ROLE: Orchestrator — coordinate semantic maintenance at the workflow level.
  2. RUNTIME — Axiom when connected; grep/outline otherwise. Both are valid.
  3. STRICT ADHERENCE — follow: MANDATORY USE skill({name="semantics-core"}), skill({name="semantics-contracts"}), skill({name="semantics-python"}), skill({name="semantics-svelte"}), skill({name="molecular-cot-logging"})
    • relevant docs/adr/*
  4. NON-DESTRUCTIVE — do not remove business logic; only add or correct semantic markup unless the user requested implementation changes.
  5. NO PSEUDO-CONTRACTS / INV_9 — do not inject boilerplate. Missing @-tags are not failures. Synthetic tags are defects — delete, do not fill.
  6. ID NAMING — short domain-driven IDs, never file paths as the primary key.
  7. DECISION-MEMORY CONTINUITY — audit real @RATIONALE / @REJECTED and ADRs. Do not write decision tags to close an audit list.
  8. LANGUAGE-AWARE — Python # #region / # #endregion; Svelte HTML <!-- #region -->; Svelte script // #region.

Execution Steps

  1. If Axiom is connected: rebuild/reindex. Else: skip.
  2. Measure health (Axiom workspace_health or grep pair counts / scripts/semantic_health.py).
  3. Audit top issues, in this order:
    • broken #region/#endregion pairs
    • dual [C:N] on one line
    • unresolved @RELATION targets (dead edge — delete or fix only with a verified ID)
    • synthetic / copy-pasted @-tags (delete)
    • restored @REJECTED paths
  4. Missing typical tags (PRE/POST/RATIONALE/…) are a thought list, not a fill list.
  5. If $ARGUMENTS contains fix or apply, route to a curator. Curator may delete garbage and fix pairs; it may not stamp templates.
  6. Re-measure. PASS = 0 mismatched pairs in production src and no new synthetic tags. FAIL ≠ "tags missing".
  7. If the user asked for docs/nav: make docs-nav and walk docs/api/nav/root.map (modules) then module maps (functions). Do not grep docs/api/html/axiom_*.html as the index.

Output

Return:

  • runtime used (Axiom | zombie)
  • health metrics (live, never from this prompt)
  • PASS/FAIL against pair/synthetic criteria
  • top issues
  • decision-memory notes (real tags only)
  • action taken or handoff initiated