{"kind":"Skill","metadata":{"namespace":"community","name":"acreadiness-assess","version":"0.1.0"},"spec":{"description":"Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc readiness` and hands off rendering to the @ai-readiness-reporter custom agent. Supports policies (--policy) for org-specific scoring. Use when asked to assess, audit, or score the AI readiness of a repo.","files":{"SKILL.md":"---\nname: acreadiness-assess\ndescription: 'Run the AgentRC readiness assessment on the current repository and produce a static HTML dashboard at reports/index.html. Wraps `npx github:microsoft/agentrc readiness` and hands off rendering to the @ai-readiness-reporter custom agent. Supports policies (--policy) for org-specific scoring. Use when asked to assess, audit, or score the AI readiness of a repo.'\nargument-hint: \"[--policy \u003cpath-or-pkg\u003e] [--per-area] — e.g. /acreadiness-assess, /acreadiness-assess --policy ./policies/strict.json\"\n---\n\n# /acreadiness-assess — AI-readiness assessment\n\nUse this skill whenever the user asks for an **AI-readiness assessment**, a **readiness check**, an **audit**, or wants to **see how AI-ready** their repository is.\n\nThis skill is the *Measure* step in AgentRC's **Measure → Generate → Maintain** loop. The result is a self-contained HTML dashboard the user can open with `file://` or commit to the repo.\n\n## Steps\n\n1. **Confirm prerequisites.** Node 20+ must be on PATH. If unsure, run `node --version`.\n\n2. **Decide on a policy** (optional but encouraged):\n   - If the user provided `--policy \u003csource\u003e`, capture it.\n   - Otherwise check `agentrc.config.json` for a `policies` array.\n   - If neither, run with no policy (built-in defaults).\n   - For a primer on policies, suggest the `acreadiness-policy` skill.\n\n3. **Run the readiness scan** in the repo root with structured output:\n   ```bash\n   npx -y github:microsoft/agentrc readiness --json [--policy \u003csource\u003e] [--per-area]\n   ```\n   The `CommandResult\u003cT\u003e` JSON envelope is your input for the next step.\n\n4. **Hand off to the `ai-readiness-reporter` custom agent** to interpret the JSON and produce `reports/index.html`. The agent renders via the bundled template `report-template.html` (shipped alongside this skill) so every report has an identical look \u0026 feel. The agent:\n   - Reads the bundled `report-template.html` and substitutes placeholders with real data.\n   - Inlines all CSS, ships a single static file (works under `file://`).\n   - Renders maturity level, overall score, grade, pass-rate vs threshold.\n   - Breaks down all 9 pillars across **Repo Health** (8) and **AI Setup** (1) with *what it measures*, *why it matters for AI*, *current state*, and *a specific recommendation*.\n   - Tags every pillar with an **AI relevance** badge (High / Medium / Low).\n   - Surfaces **Extras** separately (they never affect the score).\n   - Shows the **Active Policy** including any disabled/overridden criteria and thresholds.\n   - Produces a **Prioritised Remediation Plan** (🔴 Fix First / 🟡 Fix Next / 🔵 Plan).\n   - Embeds the raw AgentRC JSON for reuse.\n\n5. **Tell the user where the report lives** (`reports/index.html`) and how to open it. Summarise in chat: maturity level, overall score, top three lowest pillars, and the single highest-leverage next action (almost always: run the `acreadiness-generate-instructions` skill).\n\n## Notes\n\n- AgentRC also has a built-in HTML renderer (`--visual` / `--output report.html`) but its output is intentionally generic. This skill produces a tailored, opinionated dashboard via the custom agent — closer to a code review than a metrics dump.\n- For CI gating, recommend `agentrc readiness --fail-level \u003cn\u003e` (1–5).\n- The skill never modifies repository files other than creating `reports/index.html`.\n","report-template.html":"\u003c!--\n  AI Readiness Report — canonical template\n  --------------------------------------------\n  This file is the single source of truth for the look \u0026 feel of the\n  reports/index.html output. The @ai-readiness-reporter agent MUST load\n  this file, substitute the {{placeholders}} with real data from\n  `agentrc readiness --json`, and write the result to reports/index.html.\n\n  Rules for the agent:\n  - Do NOT change the HTML structure, class names, CSS variables or the\n    inline \u003cstyle\u003e block. The template is intentionally fixed so every\n    consumer of this plugin gets an identical-looking report.\n  - Replace every {{placeholder}} with concrete data. Repeat the marked\n    blocks (pillar cards, plan rows, maturity rows, extra rows) for\n    each item. Remove blocks that don't apply (e.g. policy section if\n    no policy is active).\n  - Keep the file self-contained: no external CSS/JS, no network fonts.\n  - Preserve the \u003cscript type=\"application/json\" id=\"raw-data\"\u003e block\n    and embed the compact AgentRC JSON inside it.\n\n  Placeholders used:\n    {{repoName}}       repository name\n    {{date}}           ISO date the report was generated\n    {{level}}          maturity level number (1-5)\n    {{levelName}}      maturity level name (Functional, Documented, ...)\n    {{overallPct}}     overall readiness as integer percent\n    {{grade}}          letter grade A-F\n    {{passRatePct}}    pass rate as integer percent (or \"—\" if N/A)\n    {{thresholdPct}}   policy pass-rate threshold (or \"—\")\n    {{policyName}}     active policy name (omit policy section if none)\n    {{policySummary}}  one-paragraph summary of disabled/overridden criteria\n    {{rawJsonCompact}} compact JSON for embedding\n    {{rawJsonPretty}}  pretty JSON for the \u003cdetails\u003e view\n\n  Pillar card placeholders (repeat per pillar):\n    {{pillarName}} {{pillarScore}} {{pillarRelevance}} (high|medium|low)\n    {{pillarStatus}} (good|warn|bad — drives bar + dot colour)\n    {{pillarWhat}} {{pillarWhyAi}} {{pillarCurrent}} {{pillarRecommendation}}\n--\u003e\n\u003c!DOCTYPE html\u003e\n\u003chtml lang=\"en\"\u003e\n\u003chead\u003e\n  \u003cmeta charset=\"UTF-8\" /\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /\u003e\n  \u003ctitle\u003eAI Readiness — {{repoName}}\u003c/title\u003e\n  \u003cstyle\u003e\n    :root {\n      --bg:#0f1115; --panel:#161a22; --panel-2:#1d2230; --border:#262c3a;\n      --text:#e6e9ef; --muted:#8a93a6; --accent:#6ea8ff;\n      --good:#4ade80; --warn:#fbbf24; --bad:#f87171;\n    }\n    * { box-sizing: border-box; }\n    html,body { margin:0; background:var(--bg); color:var(--text);\n      font:14px/1.5 -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,sans-serif; }\n    a { color: var(--accent); }\n    header { padding: 28px 32px; border-bottom: 1px solid var(--border);\n      background: linear-gradient(180deg,#141823,#0f1115); }\n    header h1 { margin: 0 0 4px; font-size: 22px; }\n    header .meta { color: var(--muted); font-size: 13px; }\n    main { max-width: 1180px; margin: 0 auto; padding: 24px 32px 80px; }\n    .panel { background:var(--panel); border:1px solid var(--border);\n      border-radius:10px; padding:20px; margin-bottom:18px; }\n    .grid { display:grid; gap:16px; }\n    .grid.cols-3 { grid-template-columns: repeat(3, 1fr); }\n    .grid.cols-2 { grid-template-columns: 1fr 1fr; }\n    .kpi .num { font-size: 30px; font-weight: 700; }\n    .kpi .lbl { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .8px; }\n    .badge { display:inline-block; padding:3px 10px; border-radius:999px;\n      font-size:12px; font-weight:600; }\n    .lvl-1 { background:#3a1f24; color:#f87171; }\n    .lvl-2 { background:#3b2c1d; color:#fbbf24; }\n    .lvl-3 { background:#2c3119; color:#d3e85e; }\n    .lvl-4 { background:#1d3325; color:#4ade80; }\n    .lvl-5 { background:#1c2c3d; color:#6ea8ff; }\n    .bar { height:8px; background:var(--panel-2); border-radius:4px; overflow:hidden; }\n    .bar \u003e span { display:block; height:100%; background: var(--accent); }\n    .bar.good \u003e span { background: var(--good); }\n    .bar.warn \u003e span { background: var(--warn); }\n    .bar.bad  \u003e span { background: var(--bad); }\n    table { width:100%; border-collapse:collapse; }\n    th,td { text-align:left; padding:8px 10px; border-bottom:1px solid var(--border); font-size:13px; }\n    th { color:var(--muted); font-weight:500; text-transform:uppercase; font-size:11px; letter-spacing:.8px; }\n    code { background:#0a0c11; padding:1px 6px; border-radius:4px; }\n    h2 { font-size:14px; color:var(--muted); text-transform:uppercase; letter-spacing:.8px; margin:0 0 12px; }\n    .dot { width:8px; height:8px; border-radius:50%; display:inline-block; }\n    .dot.good { background:var(--good); } .dot.warn { background:var(--warn); } .dot.bad { background:var(--bad); }\n    footer { color: var(--muted); font-size: 12px; text-align: center; padding: 20px; }\n\n    /* Pillar cards */\n    .pillar { background:var(--panel-2); border:1px solid var(--border);\n      border-radius:8px; padding:14px 16px; }\n    .pillar h3 { margin:0 0 6px; font-size:15px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }\n    .pillar .why  { color:var(--muted); font-size:13px; margin:8px 0 0; }\n    .pillar .what { font-size:13px; margin:6px 0 0; }\n    .pillar .rec  { font-size:13px; margin:8px 0 0; }\n    .rel { font-size:10px; padding:2px 8px; border-radius:999px; text-transform:uppercase; letter-spacing:.6px; font-weight:600; }\n    .rel.high   { background:#1c2c3d; color:#6ea8ff; }\n    .rel.medium { background:#2c3119; color:#d3e85e; }\n    .rel.low    { background:#262c3a; color:#8a93a6; }\n  \u003c/style\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n  \u003cheader\u003e\n    \u003ch1\u003eAI Readiness Report\u003c/h1\u003e\n    \u003cdiv class=\"meta\"\u003e\n      \u003cstrong\u003e{{repoName}}\u003c/strong\u003e · Assessed {{date}} ·\n      \u003cspan class=\"badge lvl-{{level}}\"\u003eL{{level}} — {{levelName}}\u003c/span\u003e ·\n      Overall \u003cstrong\u003e{{overallPct}}%\u003c/strong\u003e · Grade \u003cstrong\u003e{{grade}}\u003c/strong\u003e\n      \u003c!-- if a policy is active, append: · Policy \u003ccode\u003e{{policyName}}\u003c/code\u003e --\u003e\n    \u003c/div\u003e\n  \u003c/header\u003e\n\n  \u003cmain\u003e\n\n    \u003c!-- 1. What is AI Readiness? --\u003e\n    \u003csection class=\"panel\"\u003e\n      \u003ch2\u003eWhat is AI Readiness?\u003c/h2\u003e\n      \u003cp\u003eAI coding agents are only as effective as the context they receive. AgentRC measures how AI-ready a repo is across \u003cstrong\u003e9 pillars\u003c/strong\u003e in two categories — Repo Health and AI Setup — and maps the result to a \u003cstrong\u003e5-level maturity model\u003c/strong\u003e. This report is the \u003cem\u003eMeasure\u003c/em\u003e step in AgentRC's \u003cem\u003eMeasure → Generate → Maintain\u003c/em\u003e loop.\u003c/p\u003e\n      \u003cp style=\"color:var(--muted);font-size:13px;margin-top:8px\"\u003eEach pillar carries an \u003cstrong\u003eAI relevance\u003c/strong\u003e rating (High / Medium / Low) so you can tell at a glance which gaps most directly affect Copilot's output and which are general engineering hygiene.\u003c/p\u003e\n    \u003c/section\u003e\n\n    \u003c!-- 2. KPIs --\u003e\n    \u003csection class=\"grid cols-3\"\u003e\n      \u003cdiv class=\"panel kpi\"\u003e\u003cspan class=\"lbl\"\u003eMaturity\u003c/span\u003e\u003cdiv class=\"num\"\u003e\u003cspan class=\"badge lvl-{{level}}\"\u003eL{{level}} — {{levelName}}\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\n      \u003cdiv class=\"panel kpi\"\u003e\u003cspan class=\"lbl\"\u003eOverall Score\u003c/span\u003e\u003cdiv class=\"num\"\u003e{{overallPct}}%\u003c/div\u003e\u003cdiv style=\"color:var(--muted);font-size:12px\"\u003eGrade {{grade}}\u003c/div\u003e\u003c/div\u003e\n      \u003cdiv class=\"panel kpi\"\u003e\u003cspan class=\"lbl\"\u003ePass rate\u003c/span\u003e\u003cdiv class=\"num\"\u003e{{passRate}}\u003c/div\u003e\u003cdiv style=\"color:var(--muted);font-size:12px\"\u003eThreshold {{threshold}}\u003c/div\u003e\u003c/div\u003e\n    \u003c/section\u003e\n\n    \u003c!-- 3. Maturity progression --\u003e\n    \u003csection class=\"panel\"\u003e\n      \u003ch2\u003eMaturity Progression\u003c/h2\u003e\n      \u003ctable\u003e\n        \u003cthead\u003e\u003ctr\u003e\u003cth\u003eLevel\u003c/th\u003e\u003cth\u003eName\u003c/th\u003e\u003cth\u003eStatus\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n        \u003ctbody\u003e\n          \u003c!-- Render levels 5 → 1. Mark the current level with \"◼ You are here\". Example row:\n            \u003ctr\u003e\u003ctd\u003eL3\u003c/td\u003e\u003ctd\u003eStandardized\u003c/td\u003e\u003ctd\u003e◼ You are here\u003c/td\u003e\u003c/tr\u003e\n          --\u003e\n        \u003c/tbody\u003e\n      \u003c/table\u003e\n    \u003c/section\u003e\n\n    \u003c!-- 4. Active policy (omit this section entirely when no policy is active) --\u003e\n    \u003csection class=\"panel\"\u003e\n      \u003ch2\u003eActive Policy\u003c/h2\u003e\n      \u003cp\u003e\u003ccode\u003e{{policyName}}\u003c/code\u003e — {{policySummary}}\u003c/p\u003e\n    \u003c/section\u003e\n\n    \u003c!-- 5. Repo Health Pillars --\u003e\n    \u003csection class=\"panel\"\u003e\n      \u003ch2\u003eRepo Health Breakdown\u003c/h2\u003e\n      \u003cdiv class=\"grid cols-2\"\u003e\n        \u003c!--\n          Repeat one .pillar block per Repo Health pillar (8 pillars):\n          Style, Build, Testing, Docs, Dev Environment, Code Quality, Observability, Security.\n\n          \u003cdiv class=\"pillar\"\u003e\n            \u003ch3\u003e\n              \u003cspan class=\"dot {{pillarStatus}}\"\u003e\u003c/span\u003e\n              {{pillarName}}\n              \u003cspan class=\"rel {{pillarRelevance}}\"\u003eAI relevance: {{pillarRelevance}}\u003c/span\u003e\n              \u003cspan style=\"margin-left:auto;color:var(--muted);font-size:13px\"\u003e{{pillarScore}}%\u003c/span\u003e\n            \u003c/h3\u003e\n            \u003cdiv class=\"bar {{pillarStatus}}\"\u003e\u003cspan style=\"width:{{pillarScore}}%\"\u003e\u003c/span\u003e\u003c/div\u003e\n            \u003cp class=\"what\"\u003e\u003cstrong\u003eWhat it measures:\u003c/strong\u003e {{pillarWhat}}\u003c/p\u003e\n            \u003cp class=\"why\"\u003e\u003cstrong\u003eWhy it matters for AI:\u003c/strong\u003e {{pillarWhyAi}}\u003c/p\u003e\n            \u003cp class=\"rec\"\u003e\u003cstrong\u003eCurrent state:\u003c/strong\u003e {{pillarCurrent}}\u003c/p\u003e\n            \u003cp class=\"rec\"\u003e\u003cstrong\u003eRecommendation:\u003c/strong\u003e {{pillarRecommendation}}\u003c/p\u003e\n          \u003c/div\u003e\n        --\u003e\n      \u003c/div\u003e\n    \u003c/section\u003e\n\n    \u003c!-- 6. AI Setup Pillars --\u003e\n    \u003csection class=\"panel\"\u003e\n      \u003ch2\u003eAI Setup Breakdown\u003c/h2\u003e\n      \u003cdiv class=\"grid cols-2\"\u003e\n        \u003c!-- AI Tooling pillar block — same structure as above, AI relevance is always \"high\". --\u003e\n      \u003c/div\u003e\n    \u003c/section\u003e\n\n    \u003c!-- 7. Extras --\u003e\n    \u003csection class=\"panel\"\u003e\n      \u003ch2\u003eExtras (informational, do not affect score)\u003c/h2\u003e\n      \u003ctable\u003e\n        \u003cthead\u003e\u003ctr\u003e\u003cth\u003e\u003c/th\u003e\u003cth\u003eExtra\u003c/th\u003e\u003cth\u003eStatus\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\n        \u003ctbody\u003e\n          \u003c!-- agents-doc, pr-template, pre-commit, architecture-doc rows. Use ✅ or ◻. --\u003e\n        \u003c/tbody\u003e\n      \u003c/table\u003e\n    \u003c/section\u003e\n\n    \u003c!-- 8. Prioritised Remediation Plan --\u003e\n    \u003csection class=\"panel\"\u003e\n      \u003ch2\u003ePrioritised Remediation Plan\u003c/h2\u003e\n      \u003ch3 style=\"color:var(--bad)\"\u003e🔴 Fix First (high impact / low effort)\u003c/h3\u003e\n      \u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003e#\u003c/th\u003e\u003cth\u003eFinding\u003c/th\u003e\u003cth\u003eFile / config\u003c/th\u003e\u003cth\u003eWhy it matters\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003c!-- rows --\u003e\u003c/tbody\u003e\u003c/table\u003e\n      \u003ch3 style=\"color:var(--warn)\"\u003e🟡 Fix Next (medium impact / low effort)\u003c/h3\u003e\n      \u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003e#\u003c/th\u003e\u003cth\u003eFinding\u003c/th\u003e\u003cth\u003eFile / config\u003c/th\u003e\u003cth\u003eWhy\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003c!-- rows --\u003e\u003c/tbody\u003e\u003c/table\u003e\n      \u003ch3 style=\"color:var(--accent)\"\u003e🔵 Plan (medium impact / medium effort)\u003c/h3\u003e\n      \u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003e#\u003c/th\u003e\u003cth\u003eFinding\u003c/th\u003e\u003cth\u003eFile / config\u003c/th\u003e\u003cth\u003eWhy\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003c!-- rows --\u003e\u003c/tbody\u003e\u003c/table\u003e\n    \u003c/section\u003e\n\n    \u003c!-- 9. Next steps --\u003e\n    \u003csection class=\"panel\"\u003e\n      \u003ch2\u003eNext Steps\u003c/h2\u003e\n      \u003col\u003e\n        \u003cli\u003eGenerate or refresh instructions: \u003ccode\u003eagentrc instructions --output .github/copilot-instructions.md\u003c/code\u003e (or use the \u003ccode\u003egenerate-instructions\u003c/code\u003e skill).\u003c/li\u003e\n        \u003cli\u003eAddress each item under \u003cstrong\u003e🔴 Fix First\u003c/strong\u003e; re-run this report to confirm score improvement.\u003c/li\u003e\n        \u003cli\u003eCodify org standards via a JSON policy (\u003ccode\u003estrict.json\u003c/code\u003e, \u003ccode\u003eai-only.json\u003c/code\u003e, …) and re-run with \u003ccode\u003e--policy\u003c/code\u003e.\u003c/li\u003e\n        \u003cli\u003eWire \u003ccode\u003eagentrc readiness --fail-level \u0026lt;n\u0026gt;\u003c/code\u003e into CI to prevent regressions.\u003c/li\u003e\n      \u003c/ol\u003e\n    \u003c/section\u003e\n\n    \u003c!-- 10. Raw data --\u003e\n    \u003cdetails class=\"panel\"\u003e\n      \u003csummary style=\"cursor:pointer;color:var(--muted)\"\u003eRaw AgentRC JSON\u003c/summary\u003e\n      \u003cpre style=\"overflow:auto;font-size:11px;color:#b8c0d2\"\u003e{{rawJsonPretty}}\u003c/pre\u003e\n    \u003c/details\u003e\n    \u003cscript type=\"application/json\" id=\"raw-data\"\u003e{{rawJsonCompact}}\u003c/script\u003e\n  \u003c/main\u003e\n\n  \u003cfooter\u003e\n    Generated by \u003ca href=\"https://github.com/github/awesome-copilot/tree/main/plugins/acreadiness-cockpit\"\u003eacreadiness-cockpit\u003c/a\u003e\n    · powered by \u003ca href=\"https://github.com/microsoft/agentrc\"\u003emicrosoft/agentrc\u003c/a\u003e.\n  \u003c/footer\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n"},"import":{"commit_sha":"541b7819d8c3545c6df122491af4fa1eae415779","imported_at":"2026-05-18T20:05:35Z","license_text":"MIT License\n\nCopyright GitHub, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.","owner":"github","repo":"github/awesome-copilot","source_url":"https://github.com/github/awesome-copilot/tree/541b7819d8c3545c6df122491af4fa1eae415779/plugins/acreadiness-cockpit/skills/acreadiness-assess"}},"content_hash":[253,72,20,177,232,24,17,249,74,68,17,136,198,154,158,241,225,141,222,68,85,199,86,195,127,81,234,145,5,23,17,30],"trust_level":"unsigned","yanked":false}
