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
skills (automation): three texts still teach that a connector_action node's connectorConfig.input is sent as written; after #27327 it is evaluated like every other value slot #27982
Filing gate: ① skills text that will contradict the runtime at named locations. Found by the #27327 card thread (PR #27980) and filed by the domain:server seat, because the skills tree is outside the server lane's surface. ⛔ Not a claim.
PR #27980 (#27327) makes the executor evaluate connector_action's connectorConfig.input through the shared value-slot-map, like subflow/map input, script inputs, screen defaults, notify templateData and the http body. An expression envelope there now resolves against the flow's variables; a constant payload is unchanged. These texts still teach the old limit, that the input is sent as written:
Re-teach the slot as an evaluated value slot in the same words the skill uses for its siblings. Include one example that reads a record field into the connector input. The eval's expectation follows. Also name the registration gap that #27968 tracks: until it lands, registration does not judge this slot, so a malformed envelope fails the step at run time instead of being refused at os validate.
⛔ Do not edit before PR #27980 merges. Until then the texts are still true.
Dedupe
#27327 / PR #27980 (executor), #27968 (registration half), #27322 (the recipes that taught the limit). No open skills card covers these lines.
integration-recipes.md:63 and the integrations-declared.json eval id: 1expected_output: "the openapi provider has no include key". Since feat(connector-openapi): declarative providerConfig.include operation allowlist #27387providerConfig.include exists, with the mcp allowlist meaning: absent means every operation; otherwise an array of operation names, and a non-array or unknown entry is fatal.
Claim: PM loop round 1 · 2026-10-30T07:19Z
Session: session_016WV4cwkH2Pj7G4DWB8WTaf (card thread; seat session_016WV4d1QkPVVzNz3FJqb2iS)
Account: os-elon-musk
Branch: claude/project-thread-3xu1av (the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)
Worktree: objectstack-issue-27982
Domain: domain:skills
Seat: domain:skills#2 (seat 1 vacant on #7623; p2 rung)
File surface: skills/objectstack-automation/SKILL.md (:88 connector_action row), skills/objectstack-automation/references/integration-recipes.md (:18 and :63 — the evaluated input slot, and providerConfig.include since #27387), skills/objectstack-automation/evals/integrations-declared.json (case 1 expected_output, both stale sentences), a .changeset/ file for @objectstack/skills, and scripts/check-skills-token-ratchet.mjs rows only under the standing path (same-file deletion shown, ruling quoted) — the five locations of the family card, folded #27987 included — stop on breach; explain in the report
Container & model: S, mode:thread, model: opus (dev; skills/** low-headroom downgrade, fable at review); effort: medium; skills/** owes a CONTRACT_REVIEW_TIER review (fable) before the approver
Clause-②: no
Metadata-protocol: none
Responsibility: after PR #27980 (#27327) connectorConfig.input is evaluated like every other value slot and since #27387 the openapi provider takes providerConfig.include, but the automation skill still teaches the input as sent as written and include as absent, so an AI author parks per-record payloads and trims specs that no longer need trimming.
Thread-read: 6516893892 (triage: p2 family card; #27987's two locations folded; one PR re-teaches all five from the code within the ratchet; Tier H)
Premise: holds (origin/mainf4826f810: SKILL.md:88 「connectorConfig.input is sent as written」; integration-recipes.md:63 「The openapi provider has no include key」; eval case 1 carries both; PR #27980 merged)
Serial constraints cleared: no open PR touches skills/objectstack-automation/** at claim time. Landing tier is read off the register at PR time; triage graded Tier H.
{
"issue": 27982,
"status": "pr_open",
"pr": "objectstack-ai/objectstack#28012",
"branch": "claude/project-thread-3xu1av",
"head_sha": "1f28d891",
"base_sha": "8f41b2d1",
"session": "session_016WV4cwkH2Pj7G4DWB8WTaf",
"premise_still_valid": true,
"summary": "Re-taught the five locations from the code: SKILL.md connector_action row and integration-recipes Holds bullet now teach connectorConfig.input as a value-slot map like subflow input (top-level CEL envelope evaluated; other values literal, {…}/{{ }} literal text; os validate does not judge it yet so a malformed envelope fails at run time), with a record-field example in the recipes; recipe 1 now teaches providerConfig.include (mcp allowlist meaning, absent = every operation, non-array/unknown entry fatal) with trimming kept as package-size advice; eval case 1 expected_output follows (two named gaps instead of three, assertions unchanged).",
"files_changed": [
"skills/objectstack-automation/SKILL.md",
"skills/objectstack-automation/references/integration-recipes.md",
"skills/objectstack-automation/evals/integrations-declared.json",
"scripts/check-skills-token-ratchet.mjs",
".changeset/27982-automation-connector-input-slot.md"
],
"line_budget": {
"changed_lines": "+43 / -10 before the ratchet comment; under the 3000 human-merge threshold",
"token_ratchet": {
"skills/objectstack-automation/SKILL.md": "6457/6457, no row change (paid by cutting the row's restatement of § Integrations are declared, not coded)",
"skills/objectstack-automation/references/integration-recipes.md": "2204 -> 2236 (+32) on the standing path: three same-file restatement cuts shown, ruling 2026-10-27 「A:先削重复,余额按实测提高」 and record 6513306068 quoted in the row comment and the PR body",
"evals/integrations-declared.json": "measured, not ratcheted (1194 -> measured in-run); check-skill-eval-tokens exit 0"
}
},
"gates": {
"derived": 64,
"exit_0": 60,
"not_measured": [
"pnpm check:dts-closure (exit 3, needs whole-tree dist)",
"pnpm check:dual-build-cjs-loads (exit 3, needs whole-tree dist)",
"pnpm check:lean-entry-closure (exit 3, needs whole-tree dist)",
"pnpm check:sourcemap-no-sources-content (exit 3, needs whole-tree dist)"
],
"red": 0,
"reconcile": "dispatch-gates --ran: 64 accounted, 60 run, 4 NOT-MEASURED",
"extra": ["node ui/scripts/check-skill-eval-tokens.mjs :: exit 0", "check:doc-formula-expressions :: exit 0 after building formula + lint"]
},
"deviations": [
"#27987 was already closed by triage (state_reason duplicate, 06:56Z) before this thread started, so no relay comment was posted on it; the PR body names it in prose instead of Closes.",
"The skill text names no card number for the registration gap (#27968), matching the rest of the skills tree; the PR body names it.",
"PR body carries the project attribution block as its first two lines, then the seat signature line, then Fixes #27982."
],
"out_of_scope_findings": [],
"contract_review": "owed (skills/**, fable) before the approver",
"api_writes": {"count": 2, "endpoints": ["relay pr_create -> POST /repos/objectstack-ai/objectstack/pulls (#28012)", "relay comment os-dev-report on #27982"]},
"mcp_calls": {"writes": 0, "reads": "issue_read x4 (27982 get+comments, 27987, 27968)", "other": "subscribe_pr_activity #28012"}
}
ACCEPT → PR #28012 (register Tier H, skills/**; contract review PASS on head 1f28d89; CI green; approvers requested). Awaiting a GOVERNED_APPROVERS approval, then the seat lands it.
Landed: PR #28012 merged (99fa527e6, 2026-10-30T08:24Z), Tier H, readied and queued by os-zhuang, on contract review PASS 6518213908 (ACCEPT 6518215160). pm:dispatched is stripped with this note.
#27987 was folded in. The review's should-fixes (the auth bullet missing none, a row comment's arithmetic) ride the next edit of the recipes file. Nothing further owed on this card.
Activity
objectstack-fleet commentedon Oct 30, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: 写给 AI 的文档与 skills 说错一句,等于产品缺陷 | none | P①
Triage: p2 ·
domain:skills·area:automation· family card forskills/objectstack-automationdrift · 2026-10-30T06:56Z⛔ Not a claim.
pm:queue.includekey; since #27387 it has one, with the mcp allowlist meaning #27987 names the same two files (references/integration-recipes.mdandevals/integrations-declared.json) with a second stale sentence, which is the same defect shape and the same fix (re-teach from the code). Its locations join this card's list:integration-recipes.md:63and theintegrations-declared.jsonevalid: 1expected_output: "theopenapiprovider has noincludekey". Since feat(connector-openapi): declarative providerConfig.include operation allowlist #27387providerConfig.includeexists, with the mcp allowlist meaning: absent means every operation; otherwise an array of operation names, and a non-array or unknown entry is fatal.includekey; since #27387 it has one, with the mcp allowlist meaning #27987 is closed as folded into this card.Generated by Claude Code
objectstack-fleet commentedon Oct 30, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
Claim: PM loop round 1 · 2026-10-30T07:19Z
Session:
session_016WV4cwkH2Pj7G4DWB8WTaf(card thread; seatsession_016WV4d1QkPVVzNz3FJqb2iS)Account:
os-elon-muskBranch:
claude/project-thread-3xu1av(the card thread's platform-assigned branch — the recorded platform exception; amended by the seat when the thread reported it)Worktree:
objectstack-issue-27982Domain:
domain:skillsSeat:
domain:skills#2(seat 1 vacant on #7623; p2 rung)File surface:
skills/objectstack-automation/SKILL.md(:88connector_actionrow),skills/objectstack-automation/references/integration-recipes.md(:18 and :63 — the evaluated input slot, andproviderConfig.includesince #27387),skills/objectstack-automation/evals/integrations-declared.json(case 1expected_output, both stale sentences), a.changeset/file for@objectstack/skills, andscripts/check-skills-token-ratchet.mjsrows only under the standing path (same-file deletion shown, ruling quoted) — the five locations of the family card, folded #27987 included — stop on breach; explain in the reportContainer & model:
S,mode:thread,model: opus(dev;skills/**low-headroom downgrade, fable at review);effort: medium;skills/**owes a CONTRACT_REVIEW_TIER review (fable) before the approverClause-②: no
Metadata-protocol: none
Responsibility: after PR #27980 (#27327)
connectorConfig.inputis evaluated like every other value slot and since #27387 theopenapiprovider takesproviderConfig.include, but the automation skill still teaches the input as sent as written andincludeas absent, so an AI author parks per-record payloads and trims specs that no longer need trimming.Thread-read: 6516893892 (triage: p2 family card; #27987's two locations folded; one PR re-teaches all five from the code within the ratchet; Tier H)
Premise: holds (
origin/mainf4826f810:SKILL.md:88「connectorConfig.inputis sent as written」;integration-recipes.md:63「Theopenapiprovider has noincludekey」; eval case 1 carries both; PR #27980 merged)Serial constraints cleared: no open PR touches
skills/objectstack-automation/**at claim time. Landing tier is read off the register at PR time; triage graded Tier H.objectstack-fleet commentedon Oct 30, 2026
domain:skills#2 · os-elon-musk · session_016WV4cwkH2Pj7G4DWB8WTaf
os-dev-report
{ "issue": 27982, "status": "pr_open", "pr": "objectstack-ai/objectstack#28012", "branch": "claude/project-thread-3xu1av", "head_sha": "1f28d891", "base_sha": "8f41b2d1", "session": "session_016WV4cwkH2Pj7G4DWB8WTaf", "premise_still_valid": true, "summary": "Re-taught the five locations from the code: SKILL.md connector_action row and integration-recipes Holds bullet now teach connectorConfig.input as a value-slot map like subflow input (top-level CEL envelope evaluated; other values literal, {…}/{{ }} literal text; os validate does not judge it yet so a malformed envelope fails at run time), with a record-field example in the recipes; recipe 1 now teaches providerConfig.include (mcp allowlist meaning, absent = every operation, non-array/unknown entry fatal) with trimming kept as package-size advice; eval case 1 expected_output follows (two named gaps instead of three, assertions unchanged).", "files_changed": [ "skills/objectstack-automation/SKILL.md", "skills/objectstack-automation/references/integration-recipes.md", "skills/objectstack-automation/evals/integrations-declared.json", "scripts/check-skills-token-ratchet.mjs", ".changeset/27982-automation-connector-input-slot.md" ], "line_budget": { "changed_lines": "+43 / -10 before the ratchet comment; under the 3000 human-merge threshold", "token_ratchet": { "skills/objectstack-automation/SKILL.md": "6457/6457, no row change (paid by cutting the row's restatement of § Integrations are declared, not coded)", "skills/objectstack-automation/references/integration-recipes.md": "2204 -> 2236 (+32) on the standing path: three same-file restatement cuts shown, ruling 2026-10-27 「A:先削重复,余额按实测提高」 and record 6513306068 quoted in the row comment and the PR body", "evals/integrations-declared.json": "measured, not ratcheted (1194 -> measured in-run); check-skill-eval-tokens exit 0" } }, "gates": { "derived": 64, "exit_0": 60, "not_measured": [ "pnpm check:dts-closure (exit 3, needs whole-tree dist)", "pnpm check:dual-build-cjs-loads (exit 3, needs whole-tree dist)", "pnpm check:lean-entry-closure (exit 3, needs whole-tree dist)", "pnpm check:sourcemap-no-sources-content (exit 3, needs whole-tree dist)" ], "red": 0, "reconcile": "dispatch-gates --ran: 64 accounted, 60 run, 4 NOT-MEASURED", "extra": ["node ui/scripts/check-skill-eval-tokens.mjs :: exit 0", "check:doc-formula-expressions :: exit 0 after building formula + lint"] }, "deviations": [ "#27987 was already closed by triage (state_reason duplicate, 06:56Z) before this thread started, so no relay comment was posted on it; the PR body names it in prose instead of Closes.", "The skill text names no card number for the registration gap (#27968), matching the rest of the skills tree; the PR body names it.", "PR body carries the project attribution block as its first two lines, then the seat signature line, then Fixes #27982." ], "out_of_scope_findings": [], "contract_review": "owed (skills/**, fable) before the approver", "api_writes": {"count": 2, "endpoints": ["relay pr_create -> POST /repos/objectstack-ai/objectstack/pulls (#28012)", "relay comment os-dev-report on #27982"]}, "mcp_calls": {"writes": 0, "reads": "issue_read x4 (27982 get+comments, 27987, 27968)", "other": "subscribe_pr_activity #28012"} }objectstack-fleet commentedon Oct 30, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
ACCEPT → PR #28012 (register Tier H,
skills/**; contract review PASS on head 1f28d89; CI green; approvers requested). Awaiting a GOVERNED_APPROVERS approval, then the seat lands it.objectstack-fleet commentedon Oct 30, 2026
domain:skills#2 · os-elon-musk · session_016WV4d1QkPVVzNz3FJqb2iS
Landed: PR #28012 merged (
99fa527e6, 2026-10-30T08:24Z), Tier H, readied and queued by os-zhuang, on contract review PASS 6518213908 (ACCEPT 6518215160).pm:dispatchedis stripped with this note.From this commit,
objectstack-automationteaches:connector_action'sconnectorConfig.inputas an evaluated value slot, with registration not yet judging it (automation: registration does not judge aconnector_actionnode'sconnectorConfig.inputvalue slot, because the spec expression ledger cannot address a sibling block ofconfig#27968);providerConfig.includefor theopenapiprovider.#27987 was folded in. The review's should-fixes (the
authbullet missingnone, a row comment's arithmetic) ride the next edit of the recipes file. Nothing further owed on this card.