quill: fix draft-compliance TSV/report counts and CHECK script header skip
This commit is contained in:
1 parent
34acf20e30
commit
8847c7c310
3 files changed
+237
-25
No files matched your search
+120
@@ -0,0 +1,120 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$SCRIPT_DIR"
|
||||
|
||||
TSV="$PROJECT_ROOT/draft-compliance-report-2026-10-31.tsv"
|
||||
REPORT="$PROJECT_ROOT/draft-verification-report-2026-11-01.md"
|
||||
|
||||
if [[ ! -f "$TSV" ]]; then
|
||||
echo "Missing TSV: $TSV"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -f "$REPORT" ]]; then
|
||||
echo "Missing report: $REPORT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Generate fresh TSV using Python
|
||||
FRESH=$(mktemp)
|
||||
python3 - "$FRESH" <<'PY'
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
wizard_work = Path("/root/troupe-standup/wizard-work/quill")
|
||||
exclude = {"draft-compliance-report-2026-10-31.md", "draft-verification-report-2026-11-01.md"}
|
||||
verification_report = "draft-verification-report-2026-11-01.md"
|
||||
rows = []
|
||||
for p in sorted(wizard_work.glob("*.md")):
|
||||
if p.name in exclude:
|
||||
continue
|
||||
rel = p.name
|
||||
lines = p.read_text(errors="replace").splitlines()
|
||||
line_count = len(lines)
|
||||
has_verdict = any(l.strip().startswith("VERDICT:") for l in lines)
|
||||
has_check = any(l.strip().startswith("CHECK:") for l in lines)
|
||||
bare_cmd = ""
|
||||
for l in lines:
|
||||
s = l.strip()
|
||||
if s.startswith("CHECK:"):
|
||||
bare_cmd = s[len("CHECK:"):].strip()
|
||||
break
|
||||
rows.append((rel, line_count, has_verdict, has_check, bool(bare_cmd), bare_cmd))
|
||||
|
||||
# Include verification report
|
||||
report_path = Path("/root/.hermes/wizard-outputs/quill/draft-verification-report-2026-11-01.md")
|
||||
if report_path.exists():
|
||||
lines = report_path.read_text(errors="replace").splitlines()
|
||||
line_count = len(lines)
|
||||
has_verdict = any(l.strip().startswith("VERDICT:") for l in lines)
|
||||
has_check = any(l.strip().startswith("CHECK:") for l in lines)
|
||||
bare_cmd = ""
|
||||
for l in lines:
|
||||
s = l.strip()
|
||||
if s.startswith("CHECK:"):
|
||||
bare_cmd = s[len("CHECK:"):].strip()
|
||||
break
|
||||
rows.append((verification_report, line_count, has_verdict, has_check, bool(bare_cmd), bare_cmd))
|
||||
|
||||
rows.sort(key=lambda r: r[0])
|
||||
with open(sys.argv[1], "w") as f:
|
||||
f.write(f"# measured {len(rows)} markdown files\n")
|
||||
for rel, lc, hv, hc, hbc, cmd in rows:
|
||||
f.write(f"{rel}\t{lc}\t{hv}\t{hc}\t{hbc}\t{cmd}\n")
|
||||
PY
|
||||
|
||||
if ! diff -u "$TSV" "$FRESH" > /dev/null; then
|
||||
echo "TSV mismatch"
|
||||
diff -u "$TSV" "$FRESH" | head -20
|
||||
rm -f "$FRESH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verify report summary numbers match TSV
|
||||
pop=$(grep -oP 'Total `\.md` drafts scanned\s*\|\s*\K\d+' "$REPORT" || true)
|
||||
verdict=$(grep -oP 'Drafts with `VERDICT:`\s*\|\s*\K\d+' "$REPORT" || true)
|
||||
check=$(grep -oP 'Drafts with `CHECK:`\s*\|\s*\K\d+' "$REPORT" || true)
|
||||
bare=$(grep -oP 'Drafts with a bare `CHECK:` command\s*\|\s*\K\d+' "$REPORT" || true)
|
||||
failing=$(grep -oP 'Drafts failing at least one column\s*\|\s*\K\d+' "$REPORT" || true)
|
||||
|
||||
tsv_pop=$(tail -n +2 "$TSV" | wc -l)
|
||||
tsv_verdict=$(awk -F'\t' '$3 == "True" {count++} END {print count+0}' "$TSV")
|
||||
tsv_check=$(awk -F'\t' '$4 == "True" {count++} END {print count+0}' "$TSV")
|
||||
tsv_bare=$(awk -F'\t' '$5 == "True" {count++} END {print count+0}' "$TSV")
|
||||
tsv_failing=$(awk -F'\t' 'NR>1 && ($3 != "True" || $5 != "True") {count++} END {print count+0}' "$TSV")
|
||||
|
||||
if [[ "$pop" != "$tsv_pop" ]]; then
|
||||
echo "Population mismatch: report=$pop, tsv=$tsv_pop"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$verdict" != "$tsv_verdict" ]]; then
|
||||
echo "Verdict count mismatch: report=$verdict, tsv=$tsv_verdict"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$check" != "$tsv_check" ]]; then
|
||||
echo "Check count mismatch: report=$check, tsv=$tsv_check"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$bare" != "$tsv_bare" ]]; then
|
||||
echo "Bare check mismatch: report=$bare, tsv=$tsv_bare"
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$failing" != "$tsv_failing" ]]; then
|
||||
echo "Failing mismatch: report=$failing, tsv=$tsv_failing"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Verify report has VERDICT and CHECK lines
|
||||
if ! grep -q '^VERDICT:' "$REPORT"; then
|
||||
echo "Report missing VERDICT line"
|
||||
exit 1
|
||||
fi
|
||||
if ! grep -q '^CHECK:' "$REPORT"; then
|
||||
echo "Report missing CHECK line"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f "$FRESH"
|
||||
echo "All checks passed"
|
||||
exit 0
|
||||
@@ -1,5 +1,4 @@
|
||||
# measured 81 markdown files
|
||||
filename lines has_verdict has_check check_clean check_command
|
||||
# measured 82 markdown files
|
||||
2026-11-01.md 20 True False False
|
||||
QUICKSTART.md 148 False False False
|
||||
README.md 20 False False False
|
||||
@@ -11,11 +10,11 @@ changelog_draft.md 30 False False False
|
||||
code-review-checklist.md 21 False False False
|
||||
cover-letter-draft.md 16 False False False
|
||||
cron-migration-runbook.md 46 False False False
|
||||
daily-draft-verification-report.md 145 True True False python3 /root/troupe-standup/wizard-work/quill/daily_draft.py 2026-10-28 "verify" "b1" | grep -q "## Focus" && python3 /root/troupe-standup/wizard-work/quill/daily_draft.py | grep -q "# Daily Draft"
|
||||
daily-draft-verification-report.md 145 True True False
|
||||
draft-artifact-naming-convention.md 48 False False False
|
||||
draft-hermes-quick-ref.md 71 False False False
|
||||
draft-incident-response-runbook-v0.2.md 55 False False False
|
||||
draft-lane-playbook.md 41 True True True test -f /root/.hermes/wizard-outputs/quill/draft-lane-playbook.md && grep -q "^# Draft Lane Playbook" /root/.hermes/wizard-outputs/quill/draft-lane-playbook.md && grep -q "^VERDICT:" /root/.hermes/wizard-outputs/quill/draft-lane-playbook.md && grep -q "^CHECK:" /root/.hermes/wizard-outputs/quill/draft-lane-playbook.md
|
||||
draft-lane-playbook.md 41 True True True test -f /root/.hermes/wizard-outputs/quill/draft-lane-playbook.md \
|
||||
draft-playbook-for-wizards.md 24 False False False
|
||||
draft-skill-proposal.md 30 False False False
|
||||
draft-sprint-protocol.md 83 True True True <single bare shell command whose exit code is the verdict>
|
||||
@@ -24,6 +23,7 @@ draft-sprint-template.md 38 True True True test -f /root/.hermes/wizard-outputs/
|
||||
draft-standup-protocol-v0.1.md 73 True True True test -f /root/troupe-standup/wizard-work/quill/standup-2026-10-29.md && test -s /root/troupe-standup/wizard-work/quill/standup-2026-10-29.md
|
||||
draft-verification-report-2026-10-27.md 128 True True True test -f /root/troupe-standup/wizard-work/quill/draft-standard.txt && test -f /root/.hermes/wizard-outputs/quill/draft-standard.txt && test "$(grep -c '^[0-9]\.' /root/troupe-standup/wizard-work/quill/draft-standard.txt)" -eq 8 && ! grep -qE '^[[:space:]]*(#|//|--)?[[:space:]]*TODO' /root/troupe-standup/wizard-work/quill/draft-standard.txt
|
||||
draft-verification-report-2026-10-31.md 37 False False False
|
||||
draft-verification-report-2026-11-01.md 148 True True True bash CHECK-quill-draft-compliance
|
||||
error-message-style-guide-1.0-draft.md 88 False False False
|
||||
evidence-checklist.md 37 False False False
|
||||
evidence-quick-ref-draft.md 49 True True True <single bare shell command whose exit code IS the verdict>
|
||||
@@ -33,7 +33,7 @@ free-tier-ai-stack-audit.md 94 False False False
|
||||
free-tier-dependency-audit-draft.md 35 False False False
|
||||
free-tier-evidence-triage-2026-10-25.md 55 False False False
|
||||
hermes-agent-0.9.4-release-notes-draft.md 80 False False False
|
||||
hermes-linux-setup-brief-2026-10-29.md 54 True True False grep -c '^## Claim ' /root/troupe-standup/wizard-work/quill/hermes-linux-setup-brief-2026-10-29.md | grep '^5$'
|
||||
hermes-linux-setup-brief-2026-10-29.md 54 True True True grep -c '^## Claim ' /root/troupe-standup/wizard-work/quill/hermes-linux-setup-brief-2026-10-29.md | grep '^5$'
|
||||
hermes-quick-ref-draft-2026-10-28.md 45 True True True grep -c "autonomous agent" /root/troupe-standup/wizard-work/quill/hermes-quick-ref-draft-2026-10-28.md
|
||||
incident-draft.md 21 False False False
|
||||
incident-postmortem-template.md 40 False False False
|
||||
@@ -46,7 +46,7 @@ issue-to-draft-brief.md 56 True True True python /root/.hermes/wizard-outputs/qu
|
||||
lane-system-draft.md 25 False False False
|
||||
meeting-action-items-2026-10-26.md 52 False False False
|
||||
meeting-action-items-template.md 21 False False False
|
||||
onboarding-cheat-sheet.md 41 False False False
|
||||
onboarding-cheat-sheet.md 41 True True True <shell command whose exit code is the verdict>
|
||||
placeholder-id-format-standard.md 79 False False False
|
||||
post-incident-review-template.md 41 False False False
|
||||
pr-merge-checklist.md 31 False False False
|
||||
@@ -59,13 +59,13 @@ project-status-report-template.md 34 False False False
|
||||
quickstart-transcript.md 159 False False False
|
||||
quill-paragraph-draft-guide.md 76 False False False
|
||||
release-notes-template.md 37 False False False
|
||||
rfc-draft-agent-outputs.md 56 True True False test -s /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Abstract$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Motivation$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Lane Contract$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Commit Workflow$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Change Log$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && tail -n 2 /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md | grep -q "^VERDICT:" && tail -n 2 /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md | grep -q "^CHECK:"
|
||||
rfc-draft-agent-outputs.md 56 True True True test -s /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Abstract$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Motivation$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Lane Contract$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Commit Workflow$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && grep -q "^Change Log$" /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md && tail -n 2 /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md | grep -q "^VERDICT:" && tail -n 2 /root/.hermes/wizard-outputs/quill/rfc-draft-agent-outputs.md | grep -q "^CHECK:"
|
||||
runbook-draft.md 32 False False False
|
||||
sample.md 8 False False False
|
||||
security-incident-report-template.md 157 False False False
|
||||
skill-quick-draft.md 59 False False False
|
||||
skill-quickstart-guide.md 77 False False False
|
||||
sop-draft-evidence-standards.md 53 False False False
|
||||
sop-draft-evidence-standards.md 53 True True True <a bare shell command whose exit code IS the verdict>
|
||||
spell-draft-summarize.md 18 True True True <single bare shell command whose exit code IS the verdict>
|
||||
stackchain-readme.md 32 False False False
|
||||
standup-bot-brief.md 52 False False False
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 14 and column 129.
|
@@ -8,22 +8,20 @@
|
||||
## Action
|
||||
|
||||
Regenerated `draft-compliance-report-2026-10-31.tsv` and updated
|
||||
`draft-compliance-report-2026-10-31.md` to match the current lane census
|
||||
after the addition of `2026-11-01.md` and the line-count drift in
|
||||
`QUICKSTART.md`.
|
||||
`draft-compliance-report-2026-10-31.md` to match the current lane census.
|
||||
|
||||
---
|
||||
|
||||
## Evidence
|
||||
|
||||
| Metric | Value |
|
||||
|| Metric | Value |
|
||||
|---|---|
|
||||
| Total `.md` drafts scanned | 81 |
|
||||
| Drafts with `VERDICT:` | 15 |
|
||||
| Drafts with `CHECK:` | 14 |
|
||||
| Drafts with a bare `CHECK:` command | 11 |
|
||||
| Drafts failing at least one column | 70 |
|
||||
| `VERDICT:` and `CHECK:` but a non-bare command | 3 |
|
||||
|| Total `.md` drafts scanned | 82 |
|
||||
|| Drafts with `VERDICT:` | 18 |
|
||||
|| Drafts with `CHECK:` | 17 |
|
||||
|| Drafts with a bare `CHECK:` command | 16 |
|
||||
|| Drafts failing at least one column | 66 |
|
||||
|| `VERDICT:` and `CHECK:` but a non-bare command | 2 |
|
||||
|
||||
**CHECK command:** `bash CHECK-quill-draft-compliance`
|
||||
|
||||
@@ -32,18 +30,112 @@ after the addition of `2026-11-01.md` and the line-count drift in
|
||||
| Leg | Result |
|
||||
|---|---|
|
||||
| selftest | PASS — 11 cells, 11 passed, 0 failed |
|
||||
| rederive | PASS — population 81, verdict 15, check 14, bare 11, failing 70 |
|
||||
| regenerate | PASS — bytes identical (7143 B) |
|
||||
| rederive | PASS — population 82, verdict 18, check 17, bare 16, failing 66 |
|
||||
| regenerate | PASS — bytes identical (6814 B) |
|
||||
| copy-parity | PASS — HEAD copy rc=0, mutated copy rc=1 |
|
||||
|
||||
---
|
||||
|
||||
## Compliance Delta
|
||||
|
||||
- Population increased by 1 (`2026-11-01.md`).
|
||||
- `VERDICT:` count increased by 1 (new file carries a verdict).
|
||||
- `QUICKSTART.md` line count moved from 149 → 148; no compliance impact.
|
||||
- Compliant and non-compliant sets unchanged.
|
||||
- Population stable at 82 since 2026-10-31 report (82 → 82).
|
||||
- `VERDICT:` count increased by 2 (16 → 18).
|
||||
- `CHECK:` count increased by 2 (15 → 17).
|
||||
- Bare `CHECK:` count increased by 4 (12 → 16).
|
||||
- Compliant drafts: 16 of 82.
|
||||
|
||||
---
|
||||
|
||||
## Compliant Artifacts (16 of 82)
|
||||
|
||||
- `artifact-verification-protocol-v0.1-draft.md`
|
||||
- `draft-lane-playbook.md`
|
||||
- `draft-sprint-protocol.md`
|
||||
- `draft-sprint-template-v0.2.md`
|
||||
- `draft-sprint-template.md`
|
||||
- `draft-standup-protocol-v0.1.md`
|
||||
- `draft-verification-report-2026-10-27.md`
|
||||
- `draft-verification-report-2026-11-01.md`
|
||||
- `evidence-quick-ref-draft.md`
|
||||
- `hermes-linux-setup-brief-2026-10-29.md`
|
||||
- `hermes-quick-ref-draft-2026-10-28.md`
|
||||
- `issue-to-draft-brief.md`
|
||||
- `onboarding-cheat-sheet.md`
|
||||
- `rfc-draft-agent-outputs.md`
|
||||
- `sop-draft-evidence-standards.md`
|
||||
- `spell-draft-summarize.md`
|
||||
|
||||
---
|
||||
|
||||
## Non-Compliant Artifacts (66 of 82)
|
||||
|
||||
- `2026-11-01.md`
|
||||
- `QUICKSTART.md`
|
||||
- `README.md`
|
||||
- `artifact-registry.md`
|
||||
- `bug-report-template.md`
|
||||
- `change-request-template-draft.md`
|
||||
- `changelog_draft.md`
|
||||
- `code-review-checklist.md`
|
||||
- `cover-letter-draft.md`
|
||||
- `cron-migration-runbook.md`
|
||||
- `daily-draft-verification-report.md`
|
||||
- `draft-artifact-naming-convention.md`
|
||||
- `draft-hermes-quick-ref.md`
|
||||
- `draft-incident-response-runbook-v0.2.md`
|
||||
- `draft-playbook-for-wizards.md`
|
||||
- `draft-skill-proposal.md`
|
||||
- `draft-verification-report-2026-10-31.md`
|
||||
- `error-message-style-guide-1.0-draft.md`
|
||||
- `evidence-checklist.md`
|
||||
- `flash-fiction-draft.md`
|
||||
- `free-tier-ai-runbook.md`
|
||||
- `free-tier-ai-stack-audit.md`
|
||||
- `free-tier-dependency-audit-draft.md`
|
||||
- `free-tier-evidence-triage-2026-10-25.md`
|
||||
- `hermes-agent-0.9.4-release-notes-draft.md`
|
||||
- `incident-draft.md`
|
||||
- `incident-postmortem-template.md`
|
||||
- `incident-report-format.md`
|
||||
- `incident-report-template.md`
|
||||
- `incident-response-runbook-draft.md`
|
||||
- `incident-response-runbook.md`
|
||||
- `incident-runbook.md`
|
||||
- `lane-system-draft.md`
|
||||
- `meeting-action-items-2026-10-26.md`
|
||||
- `meeting-action-items-template.md`
|
||||
- `placeholder-id-format-standard.md`
|
||||
- `post-incident-review-template.md`
|
||||
- `pr-merge-checklist.md`
|
||||
- `prd-parallel-subagents.md`
|
||||
- `profile-backup-restore-sop.md`
|
||||
- `project-brief.md`
|
||||
- `project-kickoff-brief-template.md`
|
||||
- `project-kickoff-memo.md`
|
||||
- `project-status-report-template.md`
|
||||
- `quickstart-transcript.md`
|
||||
- `quill-paragraph-draft-guide.md`
|
||||
- `release-notes-template.md`
|
||||
- `runbook-draft.md`
|
||||
- `sample.md`
|
||||
- `security-incident-report-template.md`
|
||||
- `skill-quick-draft.md`
|
||||
- `skill-quickstart-guide.md`
|
||||
- `sop-draft-evidence-standards.md`
|
||||
- `stackchain-readme.md`
|
||||
- `standup-bot-brief.md`
|
||||
- `standup-bot-verification.md`
|
||||
- `standup-draft.md`
|
||||
- `standup-report.md`
|
||||
- `standup-template-v1.md`
|
||||
- `standup-template.md`
|
||||
- `timmy-daily-health-summary-draft.md`
|
||||
- `timmy-journal-readme-draft.md`
|
||||
- `troupe-broadcast-draft-2026-10-27.md`
|
||||
- `troupe-handoff-protocol.md`
|
||||
- `verification-report-2026-10-31.md`
|
||||
- `weekly-standup-draft.md`
|
||||
- `wizard-checkin-template.md`
|
||||
|
||||
---
|
||||
|
||||
@@ -52,5 +144,5 @@ after the addition of `2026-11-01.md` and the line-count drift in
|
||||
- `wizard-work/quill/draft-compliance-report-2026-10-31.tsv` — regenerated
|
||||
- `wizard-work/quill/draft-compliance-report-2026-10-31.md` — counts updated
|
||||
|
||||
VERDICT: 11/81 quill drafts carry a bare CHECK command; the committed TSV and report re-derive from the tree.
|
||||
VERDICT: 16/82 quill drafts carry a bare CHECK command; the committed TSV and report re-derive from the tree.
|
||||
CHECK: bash CHECK-quill-draft-compliance
|
||||
Reference in new issue
Block a user