[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7A6NET3HY71PEAM9TGMESJS":3,"skill-same:01M7A6NET3HY71PEAM9TGMESJS":52},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":26,"commitSha":27,"skillDirectory":28,"forksCount":13,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M7A6NET3HY71PEAM9TGMESJS","freight-quote-invariants",null,"Verify that the freight-quote implementation and every UI that renders quotes still honours the invariants declared in CONTEXT.md. Use when adding a Service tier, changing pricing, introducing a new currency, or before merging any change under packages\u002Fbusiness-logic or uis\u002Fbackoffice.","armonon\u002F4geeks-coursework","armonon","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F148657811?v=4","01M7A6MV38CQZ47ABX8Y3HD05V","01M7A6MV4M09SZC1DS0X72E7AZ",0,"MIT","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Fai-engineering-company-project-monorepo\u002F.agents\u002Fskills\u002Ffreight-quote-invariants\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: freight-quote-invariants\ndescription: Verify that the freight-quote implementation and every UI that renders quotes still honours the invariants declared in CONTEXT.md. Use when adding a Service tier, changing pricing, introducing a new currency, or before merging any change under packages\u002Fbusiness-logic or uis\u002Fbackoffice.\nlicense: MIT\nmetadata:\n  author: armonon\n  version: \"1.0.0\"\n  project: trackflow-monorepo\n---\n\n# Freight-quote invariants — verification skill\n\n## Objective\n\nConfirm that `packages\u002Fbusiness-logic\u002Fsrc\u002Ffreight-quote.ts` and every\ncaller in `uis\u002F**` obeys the freight-quote invariants declared in\n[`CONTEXT.md`](..\u002F..\u002F..\u002FCONTEXT.md). One objective, one artifact\n(the exit code of `scripts\u002Fverify.mjs`).\n\n## Inputs\n\nThe skill needs nothing from the requester beyond a working\nrepository at HEAD. It reads:\n\n- `CONTEXT.md` — the source of truth for the invariants.\n- `packages\u002Fbusiness-logic\u002Fsrc\u002Ffreight-quote.ts` — implementation\n  under test.\n- `packages\u002Fbusiness-logic\u002Fdist\u002F*` — must exist. If it doesn't, the\n  script fails fast with `npm run bootstrap` as the remedy.\n\n## Expected output\n\n- Exit code `0` and a single line to stdout:\n  `freight-quote-invariants: OK (N assertions)`.\n- Any failure prints the offending assertion, expected vs. actual,\n  and the line in `CONTEXT.md` that the assertion enforces. Exit\n  code `1`.\n\n## Invariants asserted (locked to CONTEXT.md)\n\nThe script currently asserts these — extend it, don't work around it.\n\n1. **Currency by country.** `country: \"MX\"` → `currency: \"MXN\"`;\n   `country: \"ES\"` → `currency: \"EUR\"`. Never `\"USD\"`, never `\"$\"`.\n2. **Priority service tier eligibility.** `serviceTier: \"priority\"`\n   accepted only when `country === \"MX\"` **and** both `originZone`\n   and `destinationZone` are `\"metro\"`. Any other combination throws\n   with a message that names the failing precondition.\n3. **Weight and distance floors.** `weightKg > 0` and\n   `distanceKm > 0`. Zero or negative → thrown error, not a silent\n   zero-quote.\n4. **Deterministic pricing.** For a frozen input, `quoteShipment`\n   returns the same object shape and same numeric total across two\n   consecutive calls (`totalPrice`, `currency`, `serviceTier`,\n   `breakdown.base`, `breakdown.distance`, `breakdown.weight`).\n5. **Rounding.** `totalPrice` is rounded to 2 decimals. No\n   floating-point drift like `123.4500000001`.\n\n## How to run\n\n```bash\nnode .agents\u002Fskills\u002Ffreight-quote-invariants\u002Fscripts\u002Fverify.mjs\n```\n\nor via the workspace alias:\n\n```bash\nnpm run verify:freight-quote\n```\n\n## Acceptance criteria (checklist)\n\n- [ ] `node ...scripts\u002Fverify.mjs` exits `0`.\n- [ ] Output line matches `freight-quote-invariants: OK (\\d+ assertions)`.\n- [ ] Adding a **new** invariant to CONTEXT.md is followed, in the\n      same PR, by a matching assertion in `scripts\u002Fverify.mjs`. If\n      the invariant is added without an assertion, the reviewer\n      blocks the PR — a rule without a check is decorative.\n- [ ] The script has zero runtime dependencies outside Node's stdlib\n      (`node:assert`, `node:test`, dynamic `import`). It must run\n      on a bare Codespace with no `npm install` beyond the workspace\n      bootstrap.\n- [ ] When the script fails, its message names both the CONTEXT.md\n      section and the code path that diverged — the point is to\n      make the fix obvious, not to signal that \"something's off\".\n\n## Anti-patterns to reject\n\n- Duplicating any invariant check in `uis\u002Fbackoffice`. The UI\n  consumes `quoteShipment`; the invariant lives here.\n- Bypassing the skill with a hand-run test when adding a new\n  invariant. If the invariant is real, it belongs in\n  `scripts\u002Fverify.mjs` so future agents pick it up automatically.\n- Adding new currency codes without also extending assertion (1).\n","# Freight-quote invariants — verification skill\n\n## Objective\n\nConfirm that `packages\u002Fbusiness-logic\u002Fsrc\u002Ffreight-quote.ts` and every\ncaller in `uis\u002F**` obeys the freight-quote invariants declared in\n[`CONTEXT.md`](..\u002F..\u002F..\u002FCONTEXT.md). One objective, one artifact\n(the exit code of `scripts\u002Fverify.mjs`).\n\n## Inputs\n\nThe skill needs nothing from the requester beyond a working\nrepository at HEAD. It reads:\n\n- `CONTEXT.md` — the source of truth for the invariants.\n- `packages\u002Fbusiness-logic\u002Fsrc\u002Ffreight-quote.ts` — implementation\n  under test.\n- `packages\u002Fbusiness-logic\u002Fdist\u002F*` — must exist. If it doesn't, the\n  script fails fast with `npm run bootstrap` as the remedy.\n\n## Expected output\n\n- Exit code `0` and a single line to stdout:\n  `freight-quote-invariants: OK (N assertions)`.\n- Any failure prints the offending assertion, expected vs. actual,\n  and the line in `CONTEXT.md` that the assertion enforces. Exit\n  code `1`.\n\n## Invariants asserted (locked to CONTEXT.md)\n\nThe script currently asserts these — extend it, don't work around it.\n\n1. **Currency by country.** `country: \"MX\"` → `currency: \"MXN\"`;\n   `country: \"ES\"` → `currency: \"EUR\"`. Never `\"USD\"`, never `\"$\"`.\n2. **Priority service tier eligibility.** `serviceTier: \"priority\"`\n   accepted only when `country === \"MX\"` **and** both `originZone`\n   and `destinationZone` are `\"metro\"`. Any other combination throws\n   with a message that names the failing precondition.\n3. **Weight and distance floors.** `weightKg > 0` and\n   `distanceKm > 0`. Zero or negative → thrown error, not a silent\n   zero-quote.\n4. **Deterministic pricing.** For a frozen input, `quoteShipment`\n   returns the same object shape and same numeric total across two\n   consecutive calls (`totalPrice`, `currency`, `serviceTier`,\n   `breakdown.base`, `breakdown.distance`, `breakdown.weight`).\n5. **Rounding.** `totalPrice` is rounded to 2 decimals. No\n   floating-point drift like `123.4500000001`.\n\n## How to run\n\n```bash\nnode .agents\u002Fskills\u002Ffreight-quote-invariants\u002Fscripts\u002Fverify.mjs\n```\n\nor via the workspace alias:\n\n```bash\nnpm run verify:freight-quote\n```\n\n## Acceptance criteria (checklist)\n\n- [ ] `node ...scripts\u002Fverify.mjs` exits `0`.\n- [ ] Output line matches `freight-quote-invariants: OK (\\d+ assertions)`.\n- [ ] Adding a **new** invariant to CONTEXT.md is followed, in the\n      same PR, by a matching assertion in `scripts\u002Fverify.mjs`. If\n      the invariant is added without an assertion, the reviewer\n      blocks the PR — a rule without a check is decorative.\n- [ ] The script has zero runtime dependencies outside Node's stdlib\n      (`node:assert`, `node:test`, dynamic `import`). It must run\n      on a bare Codespace with no `npm install` beyond the workspace\n      bootstrap.\n- [ ] When the script fails, its message names both the CONTEXT.md\n      section and the code path that diverged — the point is to\n      make the fix obvious, not to signal that \"something's off\".\n\n## Anti-patterns to reject\n\n- Duplicating any invariant check in `uis\u002Fbackoffice`. The UI\n  consumes `quoteShipment`; the invariant lives here.\n- Bypassing the skill with a hand-run test when adding a new\n  invariant. If the invariant is real, it belongs in\n  `scripts\u002Fverify.mjs` so future agents pick it up automatically.\n- Adding new currency codes without also extending assertion (1).\n",{"name":5,"license":14,"metadata":23,"description":7},{"author":9,"project":24,"version":25},"trackflow-monorepo","1.0.0","main","0b8c8f0da44d3b9e94738d7cd5d3e2921e6f9822","projects\u002Fai-engineering-company-project-monorepo\u002F.agents\u002Fskills\u002Ffreight-quote-invariants","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework","https:\u002F\u002Fgithub.com\u002Farmonon","2026-10-29 04:02:13",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add armonon\u002F4geeks-coursework --skill freight-quote-invariants",{"tool":38,"command":39},"bunx","bunx skills add armonon\u002F4geeks-coursework --skill freight-quote-invariants",{"tool":41,"command":42},"pnpm","pnpm dlx skills add armonon\u002F4geeks-coursework --skill freight-quote-invariants","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Fai-engineering-company-project-monorepo\u002F.agents\u002Fskills\u002Ffreight-quote-invariants\u002FSKILL.md",true,[46],{"path":47,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":50,"sourceHtmlUrl":51},"scripts\u002Fverify.mjs","SCRIPT","脚本",4030,"https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Fai-engineering-company-project-monorepo\u002F.agents\u002Fskills\u002Ffreight-quote-invariants\u002Fscripts\u002Fverify.mjs",[53,62,69,76,83,89],{"skillNo":54,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":57,"licenseFileUrl":58,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":18},"01M7A6PR9BT3WKDBCKM1ZNVS38","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Ffinancial-dashboard-agent-skills\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Ffinancial-dashboard-agent-skills\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[],[],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":18},"01M7A6PJYZXWCB77N47WBPG68T","vercel-react-best-practices","React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React\u002FNext.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Ffinancial-dashboard-agent-skills\u002F.agents\u002Fskills\u002Fvercel-react-best-practices\u002FSKILL.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":18},"01M7A6PFM0QD8E5YAZ04JQ25CD","dashboard-metric-card","Add or modify a KPI card on this financial dashboard with the required type, aggregation, formatting, accessibility, and tests. Use for requests to add a KPI, show a new metric, or change a header card; do not use for unrelated charts or backend-only metrics.","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Ffinancial-dashboard-agent-skills\u002F.agents\u002Fskills\u002Fdashboard-metric-card\u002FSKILL.md",[],[],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":18},"01M7A6PAJDVJ3TRS21DFR822T4","accessibility","Audit and improve web accessibility following WCAG 2.2 guidelines. Use when asked to \"improve accessibility\", \"a11y audit\", \"WCAG compliance\", \"screen reader support\", \"keyboard navigation\", or \"make accessible\".","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Ffinancial-dashboard-agent-skills\u002F.agents\u002Fskills\u002Faccessibility\u002FSKILL.md",[],[],{"skillNo":84,"name":71,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":18},"01M7A6NB1RTNW0SV5KF0F56AN9","Add or modify a KPI card on the financial dashboard so it fits the project's conventions end-to-end — type, aggregation, formatting, colour badge, and accessibility wiring. Use when asked to \"add a KPI\", \"show a new metric on the dashboard\", or \"change how X displays on the header cards\".","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Fai-eng-financial-dashboard-context-project\u002F.skills\u002Fdashboard-metric-card\u002FSKILL.md",[],[],{"skillNo":90,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":57,"licenseFileUrl":91,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":18},"01M7A6N8FXW12FRT7XKX177QHF","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Fai-eng-financial-dashboard-context-project\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Farmonon\u002F4geeks-coursework\u002Fblob\u002Fmain\u002Fprojects\u002Fai-eng-financial-dashboard-context-project\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[],[]]