Part of #13801 — the skill-teaching limb of the mechanism ruled on that card by the domain:spec seat (session session_01GDA48PuRFrHyRfdkBz8m21; measurement comment 5506949302). Filed into the skills lane because skills/** is a governed surface owned by that seat; ⛔ the spec-lane phase-2 PR deliberately does not touch skills/**.
Reader: the domain:skills seat (self-triaged lane), at its next pass.
Ruling of record
Maintainer 2026-08-31 (director summon #7, batch #18, verbatim 「其他同意」): the wall-clock unit must be part of the declaration, not ambient prose (A-half of #13655; the business-hours capability stays frozen). Mechanism B (consumption-side convergence, zero contract change) was ruled on #13801: the platform's only live misread-shaped key is ApprovalEscalation.timeoutHours, and the reference app's misread lived in a hook body — code no schema reaches — so the rule has to be taught where an AI writes the next hours table.
Budget (set by the requesting seat under the 2026-08-21 ruling that skills/** net growth is a PM-set budget)
+4 lines net, measured against 1001 (skills/objectstack-automation/SKILL.md), 980 (skills/objectstack-data/references/data-hooks.md) and 10183 (all SKILL.md files). The skills seat may trade wording but the two teaching points below are the deliverable.
The two teaching points
skills/objectstack-automation/SKILL.md, the escalation row at :619 (timeoutHours) — one clause: the number is calendar (wall-clock) hours; nights, weekends and holidays count; the platform ships no business-hours calendar. (Mirrors the schema describe the spec PR lands, so the two read the same.)skills/objectstack-data/references/data-hooks.md, sandbox section — the hook-deadline rule, 2–3 lines: a deadline stamped from an hours table is calendar hours; name the table *_CALENDAR_HOURS (or the equivalent camelCase) and add elapsed milliseconds (hours * 3_600_000); do not write "business hours" in a comment and compute wall-clock.
Acceptance
- Both files carry the points above;
check:skills-token-ratchet / check-skill-line-ratchet readings reported whole-file and whole-package before/after (the governed-surface PR convention); no other skill text moves. - The PR stays draft for human merge (governed surface); the skills seat requests the approver.
Refs: #13801 (ruling) · #13655 (decision record) · the spec-lane phase-2 PR (linked from #13801 when opened).
Generated by Claude Code
Part of #13801 — the skill-teaching limb of the mechanism ruled on that card by the
domain:specseat (sessionsession_01GDA48PuRFrHyRfdkBz8m21; measurement comment 5506949302). Filed into the skills lane becauseskills/**is a governed surface owned by that seat; ⛔ the spec-lane phase-2 PR deliberately does not touchskills/**.Reader: the
domain:skillsseat (self-triaged lane), at its next pass.Ruling of record
Maintainer 2026-08-31 (director summon #7, batch #18, verbatim 「其他同意」): the wall-clock unit must be part of the declaration, not ambient prose (A-half of #13655; the business-hours capability stays frozen). Mechanism B (consumption-side convergence, zero contract change) was ruled on #13801: the platform's only live misread-shaped key is
ApprovalEscalation.timeoutHours, and the reference app's misread lived in a hook body — code no schema reaches — so the rule has to be taught where an AI writes the next hours table.Budget (set by the requesting seat under the 2026-08-21 ruling that
skills/**net growth is a PM-set budget)+4 lines net, measured against 1001 (
skills/objectstack-automation/SKILL.md), 980 (skills/objectstack-data/references/data-hooks.md) and 10183 (allSKILL.mdfiles). The skills seat may trade wording but the two teaching points below are the deliverable.The two teaching points
skills/objectstack-automation/SKILL.md, the escalation row at:619(timeoutHours) — one clause: the number is calendar (wall-clock) hours; nights, weekends and holidays count; the platform ships no business-hours calendar. (Mirrors the schemadescribethe spec PR lands, so the two read the same.)skills/objectstack-data/references/data-hooks.md, sandbox section — the hook-deadline rule, 2–3 lines: a deadline stamped from an hours table is calendar hours; name the table*_CALENDAR_HOURS(or the equivalent camelCase) and add elapsed milliseconds (hours * 3_600_000); do not write "business hours" in a comment and compute wall-clock.Acceptance
check:skills-token-ratchet/check-skill-line-ratchetreadings reported whole-file and whole-package before/after (the governed-surface PR convention); no other skill text moves.Refs: #13801 (ruling) · #13655 (decision record) · the spec-lane phase-2 PR (linked from #13801 when opened).
Generated by Claude Code