Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add kyleoliveiro/sg-gov-skills --skill corppass-legacygit clone --depth 1 https://github.com/kyleoliveiro/sg-gov-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kyleoliveiro/sg-gov-skills/corppass-legacy)<a href="https://agentmods.dev/skills/kyleoliveiro/sg-gov-skills/corppass-legacy"><img src="https://agentmods.dev/badge/skills/kyleoliveiro/sg-gov-skills/corppass-legacy/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kyleoliveiro/sg-gov-skills/corppass-legacy"><img src="https://agentmods.dev/badge/skills/kyleoliveiro/sg-gov-skills/corppass-legacy.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00221 | $0.02367 |
| Opus 5 | $0.00111 | $0.01184 |
| Sonnet 5 | $0.00044 | $0.00473 |
| Haiku 4.5 | $0.00022 | $0.00237 |
Grade A, and why
corppass-legacy scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 144 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Corppass legacy: maintain and migrate pre-FAPI 2.0 integrations
Every Corppass integration onboarded before 23 March 2026 runs on the legacy Corppass Authorization API. It still works, but it is on a countdown:
| What you have | Deadline | After that |
|---|---|---|
| Legacy Corppass Authorization API | migrate by 31 March 2027 | legacy security profile deprecated 1 April 2027 |
| Myinfo Business v1/v2 | migrate to v3 by 31 May 2027 | v1/v2 deprecated |
Submit your migration plan (current progress + target date) at https://go.gov.sg/cp-fapi-migration-plan. New services cannot choose legacy — for anything greenfield, use the corppass skill. This skill exists for two jobs: keeping an existing legacy integration healthy until it migrates, and executing the migration correctly.
Source and currency
Embedded from https://docs.corppass.gov.sg as of 2026-07-23 (legacy API spec +
migration guides). Append .md to any live docs page URL for markdown; index at
https://docs.corppass.gov.sg/llms.txt. Read
references/legacy-api-and-migration.md for the full legacy wire formats, the
verbatim claim-mapping table, and both migration checklists.
The legacy shape (what you are maintaining)
Same hosts as FAPI 2.0 (stg-id.corppass.gov.sg / id.corppass.gov.sg), different
mechanics:
- Front-channel authorization:
GET /mga/sps/oauth/oauth20/authorizewithscope,response_type=code,client_id,redirect_uri,state,nonce, PKCE challenge, and (deprecated)esrvcID— all in the browser URL. Redirects during Singpass login use HTTP 303 (since v2.0). - Scopes: only
openid,authinfo,tpauthinfo. - Token endpoint returns
token_type: "Bearer"(not DPoP), a JWE ID token, and a Bearer-used JWS access token (10 minutes). - Legacy ID token is flat, and its
subis the user, as a comma-separated string:"s=S1234567P,uuid=0f14a2fc-...,u=CP192,c=SG"— key order not guaranteed since v2.1; parse by key, never by position. Entity data sits in theentityInfoclaim (CPEntID,CPEnt_TYPE,CPEnt_Status,CPNonUEN_*), user metadata inuserInfo(CPAccType— Administrator/Sub-Administrator/User/Enquiry User,CPUID_FullName,ISSPHOLDER). - Authorization data comes from
GET /authorization-infowithAuthorization: Bearer <token>— a JWS (signed, not encrypted) whose payload carries PascalCaseAuthInfo/TPAuthInfo(sameResult_Setrow shapes as the FAPIauth_info). - Crypto:
private_key_jwtclient assertions (ES256-family), PKCE S256, JWE ID tokens (ECDH-ES+A128KW/A192KW/A256KW+A256CBC-HS512). No PAR, no DPoP. - Legacy JWKS responses include
x5c/x5t/x5t#S256— deprecated; do not build on them. SSO support was removed in v2.0 (May 2024). Theemail/email_verifiedID-token claims were a restricted beta and are deprecated — do not adopt them. - Myinfo Business v1/v2 is a different API family entirely:
https://api.myinfo.gov.sg/biz/[v1|v2]with/authorise,/token(client_secret!), and/entity-person/{uen}/{uuid}— the uen/uuid taken from the decoded access token, which v3 forbids.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 144 lines · 221 tokens per session scan A 5844e89935a7
corppass-legacy is a skill published in the GitHub repository kyleoliveiro/sg-gov-skills (16 stars, last pushed 1mo ago), licensed MIT. It adds 221 tokens to every session and 2,367 once invoked, about $0.0011 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
jsonapi
Strict JSON:API v1.1 specification compliance. Trigger: When creating or modifying API endpoints, reviewing API responses, or validating JSON:API compliance.
validating-us-core
Validate FHIR R4 resources and Bundles against US Core / USCDI profiles with the official HL7 FHIR validator before submitting to an EHR. Covers running validatorcli.jar (or the public validator.fhir.org), declaring meta.profile, must-support elements, common conformance gaps (missing code/category/status), and…
telnyx-10dlc-curl
10DLC brand and campaign registration for US A2P messaging compliance. Assign phone numbers to campaigns.
adding-activity-logging
Adds or changes activity logging (the audit trail) for a Django model in PostHog. Use when a model's writes must show in the Activity side panel or the advanced activity logs, when adding ModelActivityMixin, an ActivityScope, a modelactivitysignal receiver, an activity describer, or field exclusions, when auditing…
806-regulations-eu-data-act
Use when reviewing, designing, or modifying Java enterprise systems that expose, exchange, store, process, export, or port data across users, businesses, connected products, cloud providers, APIs, event streams, AI data pipelines, data spaces, or SaaS platforms and need EU Data Act engineering controls. This should…
clio-webhooks
Receive and verify Clio (Clio Manage) webhooks. Use when setting up Clio webhook handlers, debugging X-Hook-Signature verification, completing the X-Hook-Secret handshake, or handling legal practice events like matter.created, contact.updated, activity.created, or bill events.