Repository navigation
feat(use-cases): readiness tier on every scenario, from evidence - #381
Merged
objectstack-fleet[bot] merged 1 commit intoNov 5, 2026
Merged
Conversation
Each /use-cases/ scenario now states how far it is from running, from a closed set: today (works on the platform today), integration (needs a connection to a system you run), rule (needs the business rule written down first). - Data: one `readiness` per scenario in en and zh-Hans, the same tier in both. Tiers come from evidence: none of the ten linked posts or templates shows its scenario running on the shipped platform (the posts are prescriptive; the templates ship their AI as bring-your-own-LLM stubs), so no card is `today`: six are `integration`, four are `rule`. - Type: `SCENARIO_READINESS` closed list; `readiness` required. - UI: labels and a legend lead-in for en and zh-Hans (zh-Hant derived, other locales fall back to English). - Render: a plain chip under each card title with a token-coloured dot, and a one-line legend under the metrics. - Build: a missing or unknown value fails astro build, in the same loop that checks each scenario's post, template and guide. The home page's scenario cards come from MarketingHome, not this component, and are left untagged. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FeA1nwBz1ohH65dvffUGKr
Contributor
Author
席位核对ACCEPT(形态与门禁)。落地要等维护者对下面「待裁一项」点头。
Generated by Claude Code |
Contributor
Author
|
Ruled: the maintainer, 2026-11-05, in the seat's session, answering the seat's line 370A: ship the tiers as measured, with 0 Generated by Claude Code |
This was referenced Nov 5, 2026
Contributor
Author
|
Landed. The maintainer approved the merge in the seat's session (2026-11-05): 「合 #378 #379 #380 #381.」
#370 closed by this PR; Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #370
What changed
Every scenario on
/use-cases/now carries areadinesstier from a closed set of three:todayintegrationrulecontent/pages/{en,zh-Hans}/use-cases.tssets onereadinessper scenario. Both locales use the same tier on every card. zh-Hant is derived from zh-Hans, and the other five locales use the English page, as before.src/content-pages/types.tsaddsSCENARIO_READINESS(the closed list) and makesreadinessa required field onMarketingPageScenario.src/content-pages/ui.tsadds the three labels and the legend lead-in for en and zh-Hans, plus the s2t derivation for zh-Hant. Other locales fall back to English.src/components/MarketingEvidencePage.astro:.chipunder the title.--ink-softon--surface-sunk, the existing chip pair that already passes AA. A leading dot helps match a card to the legend:--greenfor today,--amberfor integration, and a hollow--mutedring for rule. Indigo is not used, because it stays reserved for interaction.readinessis missing or outside the closed set failsastro build. This is not a new gate.MarketingHome.astrofromhomeCopy.useCases, not by this component, so they are not tagged. This is per the card's out-of-scope note.Tiers from evidence
The rule: a scenario is
todayonly if its linked template or post shows it working on the shipped platform. When in doubt, the more conservative tier wins.Result: none of the ten scenarios qualifies as
today.objectstack-ai/templatesat960f24d.The
todaytier stays in the closed set and in the legend. A scenario moves to it when its template or post shows it running, or when objectstack-ai/cloud#3567 measures it running (per #370, a measured result wins).For the other nine cards, the tier names what is specific to the scenario and blocks it, beyond configuring a model provider.
integrationcontent/blog/ai-sales-assistant/index.mdx:25: "Sales reps can update progress by voice or text. AI should summarize meetings…" The meeting and e-mail context lives in calendar, mail and meeting tools. No template; the guide is an article cluster.integrationcontent/blog/ai-ticket-hub/index.mdx:25: "Issues arrive from email, chat, and a customer portal";:98: "connect channels and normalize messages into cases". Templatehelpdesk/README.md:82-83: "flows fire but emails/IM don't go out yet" and "No real LLM call — by design; you bring your own".integrationcontent/blog/ai-expense-audit/index.mdx:24: "Employees upload invoices, receipts… AI extracts amount, date, vendor, and expense type";:99: "extract receipt data and explanations" (OCR input). The card links no template.integrationcontent/blog/ai-procurement-risk/index.mdx:36: "risk signals are distributed across procurement, ERP, quality, contract, and external data";:100: "connect ERP, procurement, contract, and quality data". Theprocurementtemplate has vendors, POs and receipts, but no AI and no quality data.rulecontent/blog/ai-employee-service-center/index.mdx:38: "AI can create requests only through a governed service catalog";:98: "build the catalog, knowledge base, requests, approvals, and fulfillment tasks". Thehrtemplate is directory, org chart and time-off only: it has no service catalog and no AI.rulecontent/blog/ai-contract-risk/index.mdx:36: "risk depends on policy, templates, amount, customer tier, and exception rules";:79: "compare the term with the standard template". Templatecontracts/src/actions/extract_terms.action.ts:20,26-30: PDF text extraction is "caller responsibility", and the action is not wired into the stack ("intentionally left to your fork").integrationcontent/blog/ai-compliance-control/index.mdx:36: "evidence lives in many systems and attachments". The card's own line names IAM, contracts, procurement and logs. Thecompliancetemplate is an evidence-collection workflow with no AI.rulecontent/blog/ai-project-risk-assistant/index.mdx:99: "start with delay, dependency, resource, and scope-change rules";:62: "Create medium risk when critical-path work is two days late…". Templateproject/README.md:3: "AI risk / delay / resource forecasting ships as a bring-your-own-LLM scaffold (fields + flow stubs)".integrationcontent/blog/ai-content-workbench/index.mdx:99: "connect product docs, customer feedback, and existing articles";:35: source material "fragmented across docs, interviews, sales notes, and analytics". Templatecontent/README.md:125,129: "No analytics ingestion" and "No content-brief AI".rulecontent/blog/ai-agent-workbench/index.mdx:90-92: which actions run on their own, which ask for confirmation, and which need approval has to be explicit;:101-103: "define read-only query tools first… gate medium and high-risk actions with confirmation and approval". The card links no template.Totals:
integration6,rule4,today0.Verification
readiness: ''on the sales card incontent/pages/en/use-cases.ts), andastro buildfailed with the scenario error. The file was then restored from HEAD; its blob matches HEAD andgit diff HEADis empty. The output is below.pnpm content:lint,pnpm check,pnpm buildandpnpm seo:smoke. The results are below./use-cases/in en and zh-Hans, at 1440 and 390, in light and dark: no horizontal overflow, the tags are readable, and the legend sits under the metrics. axe: no new violations.Readings at
143e65f:Reverse test of the build assertion (
scripts/ablation-replace.mjs, which checks the mutation on disk and restores from HEAD):Browser (built site,
astro preview): en and zh-Hans, 1440×750 and 390×844, light and dark, 8 runs.scrollWidth == clientWidthin all 8 runs. All 13 readiness chips (10 cards plus 3 in the legend) sit inside their box, with none clipped.--ink-softon--surface-sunk(the existing AA chip pair).Acceptance notes
todayis unused. This follows from the evidence rule, not from a gap in the data. Moving a card totodaytakes a template or post that shows the scenario running, or a measured result from objectstack-ai/cloud#3567.expensetemplate.objectstack-ai/templateshas anexpensepackage that the site's/templates/catalog does not list. The expense card therefore links no template. Listing it is a catalog decision outside this card.🤖 Generated with Claude Code
https://claude.ai/code/session_01FeA1nwBz1ohH65dvffUGKr