De-slop: remove every em-dash + banned words across all modules + capstone (#94)
Sync course wiki / sync-wiki (push) Successful in 4s
Sync course wiki / sync-wiki (push) Successful in 4s
Co-authored-by: claude <claude@jpaul.io> Co-committed-by: claude <claude@jpaul.io>
This commit was merged in pull request #94.
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
"""Assistive issue-triage agent — local simulation of a triage bot.
|
||||
"""Assistive issue-triage agent: local simulation of a triage bot.
|
||||
|
||||
Stands in for a forge-native triage agent (triggered when an issue opens) without a hosted account.
|
||||
It assembles the prompt, then validates and renders the AI's suggestion — and stops at a human
|
||||
It assembles the prompt, then validates and renders the AI's suggestion, and stops at a human
|
||||
confirm. The agent proposes labels and a route; it does not apply them.
|
||||
|
||||
python triage.py prompt # taxonomy + issue -> prompt for the agent
|
||||
python triage.py apply ai-triage.sample.json # validate + render + confirm gate
|
||||
|
||||
The validation step matters: the agent may only use labels that exist in label-taxonomy.md. A
|
||||
hallucinated label is rejected. Stdlib only — no pip install.
|
||||
hallucinated label is rejected. Stdlib only, no pip install.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
@@ -31,7 +31,7 @@ and a rationale for the issue that follows. Return ONLY the JSON object the taxo
|
||||
"""
|
||||
|
||||
# Allowed labels are the backticked `prefix:value` tokens in the taxonomy file. Keeping the source
|
||||
# of truth in the committed markdown — not hardcoded here — is the point.
|
||||
# of truth in the committed markdown (not hardcoded here) is the point.
|
||||
LABEL_RE = re.compile(r"`([a-z]+:[a-z0-9-]+)`")
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ def cmd_apply(args: argparse.Namespace) -> int:
|
||||
bogus = [l for l in labels if l not in allowed]
|
||||
if bogus:
|
||||
print("=" * 70)
|
||||
print("REJECTED — the agent suggested labels that aren't in the taxonomy:")
|
||||
print("REJECTED: the agent suggested labels that aren't in the taxonomy:")
|
||||
for l in bogus:
|
||||
print(f" - {l}")
|
||||
print(
|
||||
@@ -85,7 +85,7 @@ def cmd_apply(args: argparse.Namespace) -> int:
|
||||
return 1
|
||||
|
||||
print("=" * 70)
|
||||
print("TRIAGE AGENT — suggestion (advisory only)")
|
||||
print("TRIAGE AGENT: suggestion (advisory only)")
|
||||
print("=" * 70)
|
||||
print(f"\n Labels: {', '.join(labels) or '(none)'}")
|
||||
print(f" Route to: {sug.get('assignee_type', '?')}")
|
||||
@@ -99,7 +99,7 @@ def cmd_apply(args: argparse.Namespace) -> int:
|
||||
" - confirm apply the labels and route as proposed\n"
|
||||
" - edit change a label or the route, then apply\n"
|
||||
" - reject the triage is wrong; do it yourself\n"
|
||||
"\nA wrong label here costs one glance and one click to fix — which is exactly why\n"
|
||||
"\nA wrong label here costs one glance and one click to fix, which is exactly why\n"
|
||||
"triage is the safe place to let an agent in first.\n"
|
||||
)
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user