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(objectstack-platform): the skill names the push key and capability but never teaches the push block's shape (transport, apns / fcm, credentialRef) #30092
Filing gate: ① a named-location teaching gap, owed as follow-up to already-landed work (PR #29968, card #29820). It surfaced while the #29969 card thread wrote that card's eval case: the case can only assert what the skill teaches, so it stays generic. ⛔ Not a claim. Suggested-grade: p3.
reach: a named real producer. PushServiceConfigSchema (packages/spec/src/system/push-config.zod.ts) is the stack's push key (packages/spec/src/stack.zod.ts ~L1136), and PushServicePlugin (@objectstack/service-push) is built from it.
What the skill says (at origin/main)
skills/objectstack-platform/SKILL.md L42 lists push among the top-level keys.
L310 maps the requires token push to @objectstack/service-push.
One short passage, in SKILL.md or a reference the skill routes to: what a push block carries, credentials by credentialRef only, and the relay transport's current status. Read the facts off push-config.zod.ts and @objectstack/service-push on main.
Business reason: an agent asked to turn on push for an os serve deployment learns from the skill that push exists, but not how to fill it. It will guess the block, may inline an APNs/FCM secret, or may pick a relay that is not served yet.
Reader who acts: the skills lane. skills/** is Tier H, so it needs GOVERNED_APPROVERS before landing.
Read fresh. objectstack-platform names the push key and capability but never teaches the block's shape (transport, apns / fcm, credentialRef). A teaching gap, so p3, as suggested. The changeset rule applies: '@objectstack/skills': patch.
Claim: PM loop round 1 · 2026-11-06T01:15Z
Session: session_016WV4d1mkgEris4MHHLjtnk
Account: os-elon-musk (the seat's linked user as GET /user answers it; the card's assignee)
Branch: claude/project-thread-t2ftwd (the card thread's designated branch; dev session session_016WV4d1hJHYMCXtCDZwGBLV, amended by the seat)
Worktree: objectstack-issue-30092
Domain: domain:skills
Seat: domain:skills#1
File surface: skills/objectstack-platform/SKILL.md (a pointer line at most, paid by same-file deletion) and skills/objectstack-platform/references/operations.md or bootstrap.md (the push block passage); skills/objectstack-platform/evals/config-plugins-ops.json (#29969's case gains the taught shape); one root .changeset/ file. ⛔ references/plugin-development.md (PR #30726 holds it), ⛔ packages/**, ⛔ every ceiling (compress, do not raise) (stop on breach)
Container & model: S, mode:thread, model: TIER_DEFAULT (dispatch-gates --tier: MANDATORY CONTRACT_REVIEW_TIER for skills/** clause ①; exit taken = the proactive low-headroom downgrade under the maintainer's standing posture of this project: develop on the default tier, the contract-review tier runs the final contract review; the compensating control is the seat's at-tier review before ACCEPT), effort: medium
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — not a defect card (a teaching-gap follow-up of landed PR #29968)
Thread-read: 6632507548
Premise: holds: SKILL.md L42 and L305 name push and nothing teaches the block, on origin/mainda9b5f7d
Serial constraints cleared: PR #30071 and PR #30704 (same SKILL.md and eval file) merged; PR #30726 holds references/plugin-development.md, which this card does not edit
Tier H (skills/**): draft until a governed approver approves; the seat's at-tier contract review precedes ACCEPT.
{
"issue": 30092,
"status": "done",
"branch": "claude/project-thread-t2ftwd",
"pr": "https://github.com/objectstack-ai/objectstack/pull/30764",
"head": "a5d42984",
"session": "session_016WV4d1hJHYMCXtCDZwGBLV",
"premise_still_valid": true,
"summary": "skills/objectstack-platform/references/operations.md gains '## Mobile push': requires ['push'] reads the top-level push key (PushServiceConfigSchema); only transport 'direct' is served today, one block per vendor (apns: teamId, keyId, topic, environment, credentialRef; fcm: projectId, credentialRef), at least one; credentialRef names each secret and never holds it (inline privateKey / serviceAccount / PEM / JSON refused); the relay transport, also what {} or an absent key reads as, is refused at boot until its sender ships (#29920 open). SKILL.md's requires-table service row points push at the section; eval case 12 asserts transport 'direct' and credentialRef and refuses serviceAccount:. Facts read off origin/main 254f2ec1 (push-config.zod.ts, service-push capability-arg.ts / credential.ts).",
"tests": "docs + eval fixture only; no code behaviour changed, no ablation. Eval JSON parses (python json.load).",
"gates": "local on a5d42984: dispatch-gates --ran = 46 derived, 45 run (all exit 0), 1 NOT-MEASURED (check:dual-build-cjs-loads exit 3, PREREQUISITE NOT MET: whole-tree dist absent; left to CI); check:lean-entry-closure first exit 3 (objectql dist absent), rerun after building the objectql closure: exit 0; pnpm lint exit 0. CI check-runs: in_progress at report time.",
"line_budget": {
"skills/objectstack-platform/SKILL.md": {
"lines_before": 413,
"lines_after": 412,
"tokens_before": 6010,
"tokens_after": 6009,
"ceiling": 6011
},
"skills/objectstack-platform/references/operations.md": {
"lines_before": 199,
"lines_after": 212,
"tokens_before": 3119,
"tokens_after": 3116,
"ceiling": 3119
},
"all_SKILL_md_lines": {
"before": 4523,
"after": 4522
},
"bundle_tokens": {
"before": 226670,
"after": 226666
},
"ceiling_moved": false
},
"deviations": [
"SKILL.md pointer placed inside the requires table's existing service row (no new line) rather than a separate pointer line; the Part-3 section list was not extended (would cost 4 tokens over headroom).",
"Ratchet paid by deleting restatement: operations.md os validate row gate list, the 'Use os validate as the fast inner-loop' sentence, the os lint aside example list, two Common-ops-pitfalls rows restating Ports & networking (Port N in use; better-auth Invalid origin 403); SKILL.md auth-callback example list."
],
"files_changed": [
".changeset/30092-platform-skill-push-block.md",
"skills/objectstack-platform/SKILL.md",
"skills/objectstack-platform/evals/config-plugins-ops.json",
"skills/objectstack-platform/references/operations.md"
],
"dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
"mcp_calls": "0 — no MCP GitHub calls",
"api_writes": "2 — relay pr_create (#30764), relay comment (this report); plus git push (not REST)",
"open_questions": [],
"security_findings": "none",
"out_of_scope_findings": []
}
Activity
objectstack-fleet commentedon Nov 4, 2026
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U
Path: none
Triage: first-touch audit · p3 ·
domain:skillskept ·pm:triage→pm:queue· 2026-11-04T13:56Z⛔ Not a claim.
objectstack-platformnames thepushkey and capability but never teaches the block's shape (transport,apns/fcm,credentialRef). A teaching gap, so p3, as suggested. The changeset rule applies:'@objectstack/skills': patch.Generated by Claude Code
objectstack-fleet commentedon Nov 6, 2026
domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk
Claim: PM loop round 1 · 2026-11-06T01:15Z
Session:
session_016WV4d1mkgEris4MHHLjtnkAccount:
os-elon-musk(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/project-thread-t2ftwd(the card thread's designated branch; dev sessionsession_016WV4d1hJHYMCXtCDZwGBLV, amended by the seat)Worktree:
objectstack-issue-30092Domain:
domain:skillsSeat:
domain:skills#1File surface:
skills/objectstack-platform/SKILL.md(a pointer line at most, paid by same-file deletion) andskills/objectstack-platform/references/operations.mdorbootstrap.md(thepushblock passage);skills/objectstack-platform/evals/config-plugins-ops.json(#29969's case gains the taught shape); one root.changeset/file. ⛔references/plugin-development.md(PR #30726 holds it), ⛔packages/**, ⛔ every ceiling (compress, do not raise) (stop on breach)Container & model:
S,mode:thread,model: TIER_DEFAULT(dispatch-gates --tier: MANDATORYCONTRACT_REVIEW_TIERforskills/**clause ①; exit taken = the proactive low-headroom downgrade under the maintainer's standing posture of this project: develop on the default tier, the contract-review tier runs the final contract review; the compensating control is the seat's at-tier review before ACCEPT),effort: mediumClause-②: no
Metadata-protocol: none
Responsibility:
n/a — not a defect card(a teaching-gap follow-up of landed PR #29968)Thread-read: 6632507548
Premise: holds:
SKILL.mdL42 and L305 namepushand nothing teaches the block, onorigin/mainda9b5f7dSerial constraints cleared: PR #30071 and PR #30704 (same
SKILL.mdand eval file) merged; PR #30726 holdsreferences/plugin-development.md, which this card does not editTier H (
skills/**): draft until a governed approver approves; the seat's at-tier contract review precedes ACCEPT.Generated by Claude Code
objectstack-fleet commentedon Nov 6, 2026
domain:skills#1 · os-elon-musk · session_016WV4d1hJHYMCXtCDZwGBLV
os-dev-report
{ "issue": 30092, "status": "done", "branch": "claude/project-thread-t2ftwd", "pr": "https://github.com/objectstack-ai/objectstack/pull/30764", "head": "a5d42984", "session": "session_016WV4d1hJHYMCXtCDZwGBLV", "premise_still_valid": true, "summary": "skills/objectstack-platform/references/operations.md gains '## Mobile push': requires ['push'] reads the top-level push key (PushServiceConfigSchema); only transport 'direct' is served today, one block per vendor (apns: teamId, keyId, topic, environment, credentialRef; fcm: projectId, credentialRef), at least one; credentialRef names each secret and never holds it (inline privateKey / serviceAccount / PEM / JSON refused); the relay transport, also what {} or an absent key reads as, is refused at boot until its sender ships (#29920 open). SKILL.md's requires-table service row points push at the section; eval case 12 asserts transport 'direct' and credentialRef and refuses serviceAccount:. Facts read off origin/main 254f2ec1 (push-config.zod.ts, service-push capability-arg.ts / credential.ts).", "tests": "docs + eval fixture only; no code behaviour changed, no ablation. Eval JSON parses (python json.load).", "gates": "local on a5d42984: dispatch-gates --ran = 46 derived, 45 run (all exit 0), 1 NOT-MEASURED (check:dual-build-cjs-loads exit 3, PREREQUISITE NOT MET: whole-tree dist absent; left to CI); check:lean-entry-closure first exit 3 (objectql dist absent), rerun after building the objectql closure: exit 0; pnpm lint exit 0. CI check-runs: in_progress at report time.", "line_budget": { "skills/objectstack-platform/SKILL.md": { "lines_before": 413, "lines_after": 412, "tokens_before": 6010, "tokens_after": 6009, "ceiling": 6011 }, "skills/objectstack-platform/references/operations.md": { "lines_before": 199, "lines_after": 212, "tokens_before": 3119, "tokens_after": 3116, "ceiling": 3119 }, "all_SKILL_md_lines": { "before": 4523, "after": 4522 }, "bundle_tokens": { "before": 226670, "after": 226666 }, "ceiling_moved": false }, "deviations": [ "SKILL.md pointer placed inside the requires table's existing service row (no new line) rather than a separate pointer line; the Part-3 section list was not extended (would cost 4 tokens over headroom).", "Ratchet paid by deleting restatement: operations.md os validate row gate list, the 'Use os validate as the fast inner-loop' sentence, the os lint aside example list, two Common-ops-pitfalls rows restating Ports & networking (Port N in use; better-auth Invalid origin 403); SKILL.md auth-callback example list." ], "files_changed": [ ".changeset/30092-platform-skill-push-block.md", "skills/objectstack-platform/SKILL.md", "skills/objectstack-platform/evals/config-plugins-ops.json", "skills/objectstack-platform/references/operations.md" ], "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "0 — no MCP GitHub calls", "api_writes": "2 — relay pr_create (#30764), relay comment (this report); plus git push (not REST)", "open_questions": [], "security_findings": "none", "out_of_scope_findings": [] }Generated by Claude Code
objectstack-fleet commentedon Nov 6, 2026
domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk
ACCEPT → PR #30764 comment 6674714642 (head
a5d42984), contract review PASS 6674550414. Tier H: awaiting a governed approver.