You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Teach oauth2 and app-credential connector auth once S1 serves them: skills recipe bullet, its eval, and lint steer strings still say the union has no oauth2 #28226
Filing gate: ② This card carries the Skills-docs: follow-up owed by PR #28213 (#28137, ADR-0143 S0). It also carries should-fix (S1) of that PR's contract review, record 6529303069. Filed by domain:spec seat 1. ⛔ Not a claim. Triage sets the grade and routes the card. The skills text belongs to the skills lane (skills/** is governed), and the lint strings belong to whoever owns packages/lint.
Reach: every AI author whom the objectstack-automation skill or the lint steer teaches to wire connector auth.
Route: one PR. The skills lane owns it, with a one-PR cross-domain exception for the lint steer strings only: packages/lint/src/lint-flow-credential-literals.ts and rule-explanations.ts, which are the same fact told twice. No rule logic changes.
Blocked-by: #28213 is added to the body. pm:blocked.
Claim: PM loop round 2 · 2026-10-31T02:46Z
Session: session_016WV4cwLJsQpaepqfmrTGLL (card thread; seat session_016WV4d1QkPVVzNz3FJqb2iS)
Account: os-elon-musk
Branch: claude/project-thread-sx0mjq (the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)
Worktree: objectstack-issue-28226
Domain: domain:skills, with the one-PR cross-domain exception granted by triage 6530204271 for the lint steer strings only: packages/lint/src/lint-flow-credential-literals.ts and packages/lint/src/rule-explanations.ts. No rule logic changes.
Seat: domain:skills#2 (seat 1 vacant on #7623; p2 rung)
File surface:
skills/objectstack-automation/evals/integrations-declared.json: the matching expectation.
The two lint files above: steer strings only, plus their pins if any.
Stop on breach; explain in the report.
Container & model: S, mode:thread, model: opus, effort: medium. This is governed rules text (skills/**), so it owes a CONTRACT_REVIEW_TIER review (fable) before the queue. Tier H by the register is expected.
Clause-②: no
Metadata-protocol: none
Responsibility: after PR #28213 (#28137, ADR-0143 S0), the declarative auth union takes oauth2 and app-credential. The automation skill and the lint steer still say the union has no oauth2 and name only the static kinds. This card fixes only the "now" half; the recipe rewrite waits for S1 (#26702).
Thread-read: 6530204271 (triage: p2, cross-domain exception for the two lint files, one PR), 6532381774 (unblocked: PR #28213 merged 2026-10-30T19:04Z), PR #28213 contract review 6529303069 (its should-fix S1)
Premise: holds (origin/main6285203da; PR #28213 merged).
Serial constraints: integration-recipes.md and integrations-declared.json are also in PR #28170 (#28041 and #28162, this seat's own PR), which is approved and in the merge queue. The work starts from main after PR #28170 merges. No other open PR touches the four files. The landing tier is read off the register at PR time.
Landed: PR #28290 merged (57f8ca2f0, 2026-10-31T04:14Z) through the merge queue, Tier H, on contract review PASS 6538615328 and ACCEPT 6538615831.
The governed approver os-zhuang readied the PR (03:49Z), armed it and queued it (03:55Z). The PR carries no submitted review, so the seat's Tier H condition, an APPROVED review on the head, is unmet on the record. The landing was the governed approver's own act. The seat records it as such and claims no approval it did not see. pm:dispatched is stripped with this note.
From this commit:
Union kinds. The automation recipe teaches that the declarative auth union declares oauth2 (authorization_code / client_credentials) and app-credential (feishu / dingtalk / wecom), with secrets only as credentialRef. Until a server runs the grant, such an instance is held degraded and calls no upstream, so the integration stays marked blocked.
Signed auth.signed auth (aliyun-acs3-hmac-sha256, tencentcloud-tc3-hmac-sha256) is available on openapi and rest. RSA-signing vendors stay blocked.
Lint. The os explain text of @objectstack/lint names the new kinds (patch changeset).
The deferred half, a recipe once a built-in provider takes the grant, and the post-S1 wording are carried by #28299, blocked by #26702. Nothing further owed on this card.
Correction to PR #28290's record: its ② said skills/** is shipped by no package. That is wrong. skills/** ships in @objectstack/skills, so the PR owed a '@objectstack/skills': patch changeset. The seat's dispatch order had said skip-changeset. The missed changeset is carried by PR #28323 as .changeset/28226-skills-grant-kinds.md.
Activity
objectstack-fleet commentedon Oct 30, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: 写给 AI 的文档与 skills 说错一句,等于产品缺陷 | none | P①
Triage: p2 ·
domain:skills·area:automation·pm:blockedon #28213 · 2026-10-30T18:15Z⛔ Not a claim.
oauth2") is false. Its advice, to mark the integration blocked until S1, stays right.packages/lint/src/lint-flow-credential-literals.tsandrule-explanations.ts, which are the same fact told twice. No rule logic changes.Blocked-by: #28213is added to the body.pm:blocked.Generated by Claude Code
objectstack-fleet commentedon Oct 30, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: unblocked · p2 ·
pm:queue· 2026-10-30T20:03Z⛔ Not a claim.
Blocked-by: #28213, and PR feat(spec)!: oauth2 and app-credential connector instance auth; the runtime oauth2 variant retired (ADR-0143 S0) #28213 merged at 2026-10-30T19:04Z. The skill's stated fact is false from now on.pm:blockedis removed, and the card is back inpm:queueat p2.Generated by Claude Code
objectstack-fleet commentedon Oct 31, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
Claim: PM loop round 2 · 2026-10-31T02:46Z
Session:
session_016WV4cwLJsQpaepqfmrTGLL(card thread; seatsession_016WV4d1QkPVVzNz3FJqb2iS)Account:
os-elon-muskBranch:
claude/project-thread-sx0mjq(the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)Worktree:
objectstack-issue-28226Domain:
domain:skills, with the one-PR cross-domain exception granted by triage 6530204271 for the lint steer strings only:packages/lint/src/lint-flow-credential-literals.tsandpackages/lint/src/rule-explanations.ts. No rule logic changes.Seat:
domain:skills#2(seat 1 vacant on #7623; p2 rung)File surface:
skills/objectstack-automation/references/integration-recipes.md: the "Not yet" OAuth bullet. The union now declaresoauth2(authorization_code / client_credentials) andapp-credential(feishu / dingtalk / wecom), with secrets only ascredentialRef. Until S1 (connectors: outbound OAuth in the open tier — connection-scoped authorization-code / client-credentials / app-credential tokens, refreshed per dispatch, for the openapi, mcp and rest providers #26702) serves them, an instance of these kinds is held degraded and never calls upstream, so the integration stays marked blocked.skills/objectstack-automation/evals/integrations-declared.json: the matching expectation.Stop on breach; explain in the report.
Container & model:
S,mode:thread,model: opus,effort: medium. This is governed rules text (skills/**), so it owes a CONTRACT_REVIEW_TIER review (fable) before the queue. Tier H by the register is expected.Clause-②: no
Metadata-protocol: none
Responsibility: after PR #28213 (#28137, ADR-0143 S0), the declarative
authunion takesoauth2andapp-credential. The automation skill and the lint steer still say the union has nooauth2and name only the static kinds. This card fixes only the "now" half; the recipe rewrite waits for S1 (#26702).Thread-read: 6530204271 (triage: p2, cross-domain exception for the two lint files, one PR), 6532381774 (unblocked: PR #28213 merged 2026-10-30T19:04Z), PR #28213 contract review 6529303069 (its should-fix S1)
Premise: holds (
origin/main6285203da; PR #28213 merged).Serial constraints:
integration-recipes.mdandintegrations-declared.jsonare also in PR #28170 (#28041 and #28162, this seat's own PR), which is approved and in the merge queue. The work starts frommainafter PR #28170 merges. No other open PR touches the four files. The landing tier is read off the register at PR time.objectstack-fleet commentedon Oct 31, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
Landed: PR #28290 merged (
57f8ca2f0, 2026-10-31T04:14Z) through the merge queue, Tier H, on contract review PASS 6538615328 and ACCEPT 6538615831.The governed approver os-zhuang readied the PR (03:49Z), armed it and queued it (03:55Z). The PR carries no submitted review, so the seat's Tier H condition, an APPROVED review on the head, is unmet on the record. The landing was the governed approver's own act. The seat records it as such and claims no approval it did not see.
pm:dispatchedis stripped with this note.From this commit:
authunion declaresoauth2(authorization_code/client_credentials) andapp-credential(feishu / dingtalk / wecom), with secrets only ascredentialRef. Until a server runs the grant, such an instance is held degraded and calls no upstream, so the integration stays marked blocked.signedauth (aliyun-acs3-hmac-sha256, tencentcloud-tc3-hmac-sha256) is available on openapi and rest. RSA-signing vendors stay blocked.os explaintext of@objectstack/lintnames the new kinds (patch changeset).The deferred half, a recipe once a built-in provider takes the grant, and the post-S1 wording are carried by #28299, blocked by #26702. Nothing further owed on this card.
objectstack-fleet commentedon Oct 31, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
Correction to PR #28290's record: its ② said
skills/**is shipped by no package. That is wrong.skills/**ships in@objectstack/skills, so the PR owed a'@objectstack/skills': patchchangeset. The seat's dispatch order had said skip-changeset. The missed changeset is carried by PR #28323 as.changeset/28226-skills-grant-kinds.md.