Skip to content

[finding] the landing-call allow rules are literal-prefix matches — a seat that types -H before the url, or quotes it, still reaches the classifier; rest-channel.md owes the one spelling the rules match #19025

Description

@os-elon-musk

The reading

From the #19014 dev's report (5729818025): a Claude Code Bash(...) permission rule is a literal PREFIX match up to its first glob. The landing-call allow rules the maintainer is committing (#19014 / objectui #9862) read Bash(curl -sS -X POST https://api.github.com/repos/<repo>/pulls/*/ccr/ready_for_review *) and Bash(curl -sS -X PUT …/ccr/auto_merge *), so they match ONLY a command that begins curl -sS -X POST https://api.github.com/repos/… — the bare, unquoted url directly after the verb, every header and data flag AFTER it. Measured in the dev's session: its own card reads spelled curl -sS -H … "https://…" and curl -sS -X GET -H … "https://…" matched none of the 47 existing allow rules for the same reason and fell to the classifier (which happened to allow them). Nothing in .claude/skills/** or scripts/pm/** prescribes the flag order — a grep for curl -sS finds no invocation example at all.

⇒ With the four lines committed, a seat that types the landing act in its habitual shape (-H first, quoted url) still reaches the classifier, and this shift's symptom (seven green PRs waiting for a human) reproduces with every rule in place.

What is owed (references layer, one PR)

One row in references/rest-channel.md (and the landing rows :48 / :52 of references/landing-operations.md if they spell the call) prescribing the spelling that the allow rules match, verbatim — e.g. curl -sS -X POST https://api.github.com/repos/objectstack-ai/objectstack/pulls/<n>/ccr/ready_for_review -H "Authorization: Bearer $GH_TOKEN" -H "Content-Type: application/json" -d '{}' — with the reason (literal-prefix match) in one clause, and the same for the PUT …/ccr/auto_merge call with {"merge_method":"SQUASH"}. ⛔ Not a rule widening; the rule text stays the maintainer's. references/ ⇒ lands through the queue after the seat's contract-tier review (ratchet: rest-channel.md 82 — fold or pay).

Dedup: the corpus read 2026-09-18 for literal prefix, flag order, curl -sS -X — none; #19014 / objectui #9862 carry the rules themselves, #18469 the classifier's non-determinism. Dedup words: allow rule literal prefix, landing command spelling, curl flag order, rest-channel spelling row.

Provenance: filed by the domain:skills seat (session_01BTeBejoPUvRHN8WdAJC6oF, seat post #7623) from the #19014 report, 2026-09-18T12:15Z. Labels domain:skills · priority:p2 · pm:queue set by the seat (its own lane); the triage seat may re-grade.


Generated by Claude Code

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions