Repository navigation
Conversation
Add a typesafe-triage skill that fetches recently updated open NanoClaw issues and PRs read-only through gh, sends one TypeSafe System One fan-out request per item (area, kind, priority, needs_repro or pr_ready), gates on confidence with triage/unresolved below the gate, and prints proposals next to existing labels with AGREE/DISAGREE/NEW verdicts. Raw answers are saved under a gitignored directory; --fixture replays recorded responses offline and --record captures a live run in the same format. The key is read from TYPESAFE_API_KEY only, rejected if it contains whitespace, and redacted from error text. Nothing is written to GitHub.
glifocat
force-pushed
the
feat/typesafe-triage-dry-run
branch
from
September 24, 2026 10:54
aec9806 to
bb7f172
Compare
glifocat
marked this pull request as ready for review
September 24, 2026 11:18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes?
Adds a
typesafe-triageskill: an offline-testable, dry-run label triage for nanocoai/nanoclaw issues and pull requests using the TypeSafe System One decision API (POST /v1/systemone, modeljev-latest).gh api(title, body, author association, labels; PR changed files andnanoclaw-pr-template:v2section status). The issues endpoint is paged until enough real issues arrive, since it interleaves PRs.area(choice, 16area/*labels with rubrics from CLAUDE.md, docs and.github/labeler.yml),kind(choice, 7kind/*),priority(score, 4 levels), plusneeds_repro(issues) orpr_ready(PRs). Existing labels are never sent to the model.triage/unresolvedbelow the gate instead of guessing. Prints a per-proposal table with confidence, existing labels and AGREE / DISAGREE / NEW, then a summary with agreement rate per question, gated-item count, token usage and wall time.skills/typesafe-triage/output/.--fixturereplays recorded items and responses offline (shipped fixture: 5 real items fetched read-only on 2026-09-16 with hand-written answers);--recordcaptures a live run in the same format.TYPESAFE_API_KEYis read from the environment only, rejected if it contains whitespace, and redacted from error text. No SDK dependency (standard library only). Nothing is ever written to GitHub.docs/typesafe-triage.md) updated. No GitHub Action added.Validation
Offline only; no live TypeSafe request has been made from this repository.
python -m unittest discover -s testsin a venv with the hash-pinned wizard requirements -> 278 tests OK (239 existing + 39 new intests/test_typesafe_triage.py: question/request shape, template detection, gate and verdict logic, paginatedghparsing with a mocked runner, HTTP transport with a mocked opener (bearer header, 429/529 retry, no 422 retry, key redaction), partial-failure handling, fixture replay end to end, key never in stdout/stderr/saved JSON).python3 skills/typesafe-triage/scripts/typesafe-triage.py --fixture skills/typesafe-triage/fixtures/nanoclaw-sample.json-> table for 5 items, area agreement 100% (3 compared), 5 items with a gated question, 10,960 input tokens recorded.git diff --check,bash -non all skill scripts, plugin manifests parse as JSON.docs/typesafe-triage.mdandskills/typesafe-triage/SKILL.mdpoint at existing paths; thegh label listtaxonomy was re-read on 2026-09-16.TYPESAFE_API_KEYset is still to do by the operator.