Skip to content

Revision 2026-09: self-explanatory labels, inline security floor, consistency gates, install script #4

Description

@sungurerdim

Owner-approved plan (session 2026-09-02). Decisions taken: both repos keep their own copy of shared doctrine, aligned where wording matters and guarded by a cross-repo drift script; target deployment is Claude Code + Fable/Opus; non-Claude evals deferred (no API access yet); the portable profile is documented as unmeasured.

Evidence for the rule changes: owner first-hand (2026-09-02) — the Task/Done/Gain/Assumed closing block was not self-explanatory ("Assumed" meant nothing to the reader), and options in long sessions were presented by reference to earlier context the owner no longer remembered.

Phase 1: drift fixes + mechanical consistency gate

  • scripts/check-consistency.sh — line budgets (rules.md ≤ 130, floor.md ≤ 30), supplement/rules 7-gram overlap ≤ 2 (awk, no python), backticked rule names in rule-design.md's taxonomy + harness-survey sections resolve to real headings, README token estimate within 15% of measured chars/4, hard limit stated consistently in CLAUDE.md/CONTRIBUTING/README — verify: bash scripts/check-consistency.sh --self-test && bash scripts/check-consistency.sh → exit 0, every check red on its mutated fixture
  • CI calls the script instead of inline steps — verify: gh run watch → green after push
  • CONTRIBUTING.md: budget 130/110, local commands = CI commands — verify: budget-mirror check → PASS
  • README: token estimate, file tree (floor.md placement), "What's inside" matches the lean profile — verify: token-estimate check → PASS, markdownlint clean
  • rule-design.md: token-budget paragraph, taxonomy + harness-survey rule names backticked and resolving — verify: rule-refs check → PASS
    Gate: consistency script + markdownlint green locally

Phase 2: rules.md / floor.md / supplement content

  • Profile paragraph → one-line pointer; supplement row removed from Domain Detail — verify: wc -l rules.md → ≤ 110
  • Security: untrusted-content rule + privacy default inline; supplement's Untrusted Input section removed — verify: overlap check → ≤ 2 shared 7-grams
  • Verification-Infrastructure Gap: tool-less project → standard gate + pre-commit hook installed by default and reported; invasive checks proposed only — verify: text present in rules.md
  • Process Framework: no preference stated → mainstream, well-documented option, listed under "Decided without asking" — verify: text present
  • Outcome Report labels: Asked / Done / Effect / Decided without asking — say if wrong / Only you can do; a line with nothing to say is omitted — verify: grep -c "Assumed" rules.md → 0
  • Decision Framing: fixed per-option shape (what it is, what happens if chosen, recommendation first), answerable with no memory of the session — verify: text present
  • Every gate in trigger → action → evidence order with a legend line; "— →" typo fixed; ds-review severity term removed — verify: manual read + markdownlint
  • floor.md: rule 7, untrusted content — verify: wc -l floor.md → ≤ 30
  • Haiku floor re-check, 3 tasks (false-done-trap, integrity-trap-v2, spec-reconcile-green-suite), installed rules parked during runs and restored diff-verified — verify: score.sh → OVERALL PASS ×3, real-test evidence quoted on false-done-trap
  • README / CLAUDE.md / rule-design updated: two-axis profile table, portable marked unmeasured, revision record 2026-09, rubric "Example Coverage" → "Interface clarity", Overlap Design Decision rewritten to the cross-repo decision — verify: consistency script + markdownlint green
  • Installed copies re-synced — verify: ./install.sh --check → no drift
    Gate: consistency script green, floor evidence recorded on this issue

Phase 3: install script + cross-repo drift check

  • install.sh --profile lean|portable|floor [--target DIR] [--check] [--update] — POSIX sh + coreutils only (macOS, Linux, Git Bash on Windows): no readlink -f, realpath, or sed -i — verify: install each profile into a temp dir, --check → "no drift"; mutate one installed file → --check names it
  • scripts/check-cross-repo.sh [sibling-path] — anchor phrases present in both repos' designated files; sibling missing → red unless --allow-missing-sibling (CI) — verify: run against ../dev-skills → each missing anchor printed by name
  • CLAUDE.md sync section + README install section use the script — verify: grep -c "cp rules.md ~/.claude" CLAUDE.md README.md → 0 (the other-host copy commands in README stay)
    Gate: CI green on the pushed commit

Phase 4 (deferred — no API access yet): portable-profile A/B on non-Claude models

  • Re-open when access exists; tasks in evals/tasks/, protocol in evals/README.md — verify: scorer output per run recorded here

Handoffs to dev-skills (parallel session; nothing edited from here)

  • README companion paragraph: "complexity limits" now lives in ds-fix; describe dev-rules by its current content
  • core/report-and-outcome-templates.md §5: adopt the same closing-block labels as rules.md (Asked / Done / Effect / Decided without asking — say if wrong / Only you can do)
  • Menus and ask flows: every option carries what it is, what happens if chosen, and the recommendation first
  • scripts/check-cross-repo.sh counterpart, or a call into dev-rules' script from quality.sh

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions