Repository navigation
Description
Path: fleet decision — triage types every card at first grade (#7947, maintainer ruling 2026-08-12) | 缺项 | none
Filed by the triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U. ⛔ Not a claim, ⛔ not a dispatch.
Triage: lands in scripts/pm/fleet-write/ops.mjs (the issue_create and issue_patch rows) and the issue-create / label-write doors that build their actions ⇒ domain:skills; rationale: a duty in triage-duties.md has no write path.
Unblocks: triage-duties.md line 55 (the type is triage's fixed output, and triage is its only authoritative producer) and #7947's Bug-first tiebreaker in ordinary-queue selection, which can only rank cards that carry a type.
The disconnect
- The rule.
.claude/skills/pm-dispatch/references/triage-duties.mdlines 55–58 say:type(Bug/Feature/Task) is triage's fixed output;- a filer may pre-fill it and triage corrects it;
- new cards are typed at once, and existing cards when next touched.
- The write path. Seats write only through the fleet-write relay. On
main(cab6396715),issue_patchacceptstitle,body,stateandstate_reason, andissue_createacceptstitle,body,labelsandassignees. The op table is closed, so atypekey is refused, and no other op sets a type. - The result. The relay landed in feat(pm): fleet-write relay — closed op table, validator, executor, seat-side dispatcher, and the dispatch transport in the five write tools #19725 (2026-09-22). Since then no card has been typed. A sample of this session's grades and today's filings (security(automation): a paused flow run's stored state keeps record-change values that #21830's mask removes elsewhere — detail withheld pending maintainer #21867, security(search): a field-narrowed search still matches through the name field's pinyin companion #21880, docs(sso): the OIDC flow names a /sign-in/oauth2 endpoint that does not exist #21885, service-automation: a built-in node's config value its own contract refuses still registers, then fails every run — the built-in half of #21848's class #21898, [finding] The metadata door saves an edit to a code-defined datasource (
PUT /api/v1/meta/datasource/:nameanswers 200) and the metadata read then serves it, while the datasource admin door refuses the same edit as read-only #21899, identity: the platform-admin-gated actions onsys_user,sys_oauth_applicationandsys_sso_providershow no standing term invisible— the affordance family's closing card, with an enumeration pin (after #21886's ruling) #21903, hourly full run: red on main (CI) #21909, finding(objectql): deleting an organization answers 500 when a federated object is provisioned, because the cascade scan probes the remote table on the platform-injected organization_id #21910 and objectui#11660) all readtype: none. The repository does have issue types: core:PHASE2_IMPLEMENTATION.md's tworegisterPluginexamples throw when copied — seven keys across them are retired spellings #18000, filed before the relay, carriesBug.
This amends my practice. Since the relay landed, my first grades have carried no type. I did not record that the rule could not be executed. It is recorded here and on the round record.
Done when
issue_patchandissue_createaccept an optionaltype, limited to the repository's issue-type names (Bug, Feature, Task). An unknown name is refused before dispatch, not by the platform afterwards.- A door carries it, either a
--typeonlabel-write/issue-createor a smallissue-typedoor, and its read-back confirms the type the platform now serves. - A self-test row covers each accepted name and the refused unknown name.
⛔ No backfill run across the backlog. Line 58 keeps "existing cards when next touched".
Dedupe: mcp__github__search_issues (objectstack-ai/objectstack, semantic, closed included), "issue type Bug Feature Task triage fixed output relay fleet-write cannot set issue type". The only typing hit is #7947 (closed, the ruling itself). #19884 (closed) is the same family of a missing relay op (transfer).
Generated by Claude Code
Activity
objectstack-fleet commentedon Oct 6, 2026
Serial hold — ⛔ not a claim ·
session_0181E4ZeZmWyknawnauxD2CE(domain:skills#2, seat post #19287) · 2026-10-06T14:11ZThis card's surface (
scripts/pm/fleet-write/ops.mjsrowsissue_patch:340andissue_create:351, plus theissue-create/label-writedoors) intersects seat 1's in-flight #21892 (claim 5998606892:scripts/pm/label-write.mjs,scripts/pm/fleet-write/dispatch.mjs, possiblyscripts/pm/issue-create.mjs; branchclaude/issue-21892-no-run-is-unconfirmedat4c5f2c15fc, no PR at this reading). Under the parallel discipline (region-level surfaces, serial when they overlap) this card is taken after #21892 lands, from this seat's queue. The card stayspm:queue, unassigned; the two sibling queue cards (#21929, #21959) are claimed this round.Known pit for the taker, read at
origin/mainaa09db58c9: the op table is closed (ops.mjs:340-361—issue_patchoptional keys are title / body / state / state_reason;issue_createoptional keys are labels / assignees). The platform-readings table records that an issuePATCHcarryinglabelsandtypein one body answered 500 with zero writes while two separate writes answered 200 — so thetypewrite is its own request, never folded into a labels write. Re-pricing when #21892 lands: its change tolabel-write.mjsstep ③ and todispatch.mjs'sno-runpath may move the door this card adds its--typeto; the taker re-reads both files on the mergedorigin/mainbefore claiming.objectstack-fleet commentedon Oct 7, 2026
Triage: closed
not_plannedundertriage-duties.md:34and:64. This amends my filing of this card: it enteredpm:queuewithout meeting thetoolingentry ruleTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-07T06:55Z. ⛔ Not a claim.mainat this write:triage-duties.md:34admits atoolingcard topm:queueonly when its first line carriesUnblocks: #N(an open product card) or names the published surface it guards.:64closes a p2/p3toolingcard with no unlock target while its lane's queue holds an open P0/P1 (open meaning undispatched).Path:line.Unblocks:line names a protocol line (triage-duties.md:55) and pm-dispatch SKILL: native issue-typing at triage (Bug/Feature/Task) + Bug-first tiebreaker in ordinary-queue selection (maintainer ruling 2026-08-12) #7947's tiebreaker. Neither is an open product card or a published surface.domain:skillsqueue holds finding(pm tooling): label-write falls back to a direct write under the seat's personal login when an accepted relay dispatch shows no run within 90 s — the identity exchange #19774 forbade, on a second branch #21892 (priority:p1), undispatched since the maintainer's release at 2026-10-07T03:21Z.Unblocks: #Nfor an open product card, or names the published surface it guards;typeduty attriage-duties.md:55has no write path through the relay, so triage's grades stay untyped. Whether that duty is dropped from the text or given a path is the skills lane's call, for example under program(pm): rule-text diet and guard-script split for the skills lane — 3,020 lines of skill text, 126k lines of pm scripts (two files 65k), 58 commits in two weeks; plus a body section-patch door and template files for seat writes #22060's W1 (tool first, text second). Triage records the gap and takes no step of its own.6018132699(after finding(pm tooling): label-write falls back to a direct write under the seat's personal login when an accepted relay dispatch shows no run within 90 s — the identity exchange #19774 forbade, on a second branch #21892) is spent with this close.