{"id":"c02c7bae-2994-4ff5-acb5-47accb1f6871","shortId":"3dHwbN","kind":"skill","title":"utility-pm-skill-validate","tagline":"Audits an existing pm-skills skill against structural conventions and quality criteria. Produces a structured validation report with pass/fail checks, severity-graded findings, and actionable recommendations. Use when checking whether a skill meets repo standards before shipping ","description":"# PM Skill Validate\n\nThis skill audits an existing pm-skills skill against the repo's structural\nconventions and quality criteria. It produces a validation report that a\nhuman can scan and that `/pm-skill-iterate` can consume as input.\n\nThe validator checks two tiers:\n- **Tier 1 (Structural)** . deterministic checks that mirror CI: frontmatter,\n  naming, file presence, description word count.\n- **Tier 2 (Quality)** . LLM-assessed coherence checks: does the output\n  contract reference the template? Is the example complete? Are checklist\n  items testable?\n\n## When to Use\n\n- After creating a skill with `/pm-skill-builder`, before shipping\n- After manually editing a skill, to confirm it still passes conventions\n- Before running `/pm-skill-iterate`, to identify what needs improvement\n- When a convention changes, to audit which skills need updating (batch mode)\n- When reviewing a contributed skill for quality and completeness\n\n## When NOT to Use\n\n- To create a new skill from scratch -> use `/pm-skill-builder`\n- To fix or improve a skill -> use `/pm-skill-iterate` (feed it this report)\n- To run CI checks in a pipeline -> use `scripts/lint-skills-frontmatter.sh`\n  (this skill is for interactive, deeper-than-CI validation)\n\n## Instructions\n\nWhen asked to validate a skill, follow these steps:\n\n### Step 1: Identify the Target\n\nAccept the skill name in any form:\n- Directory name: `deliver-prd`\n- Full path: `skills/deliver-prd/SKILL.md`\n- Slash command: `/prd`\n\nResolve to the canonical directory path: `skills/{name}/`.\n\nIf the skill directory does not exist, report immediately:\n\n```\n# Validation Report: {input}\nResult: FAIL\nSkill directory `skills/{input}/` does not exist.\n```\n\n**Batch mode:** If the input is `--all`, run Tier 1 structural checks\nacross all skills and produce a summary table (see Step 5). Do not run\nTier 2 in batch mode.\n\n### Step 2: Read Skill Files\n\nRead all files in the skill directory:\n\n| File | Required | Purpose |\n|------|----------|---------|\n| `SKILL.md` | yes | Frontmatter + instructions |\n| `references/TEMPLATE.md` | yes | Output template |\n| `references/EXAMPLE.md` | yes | Worked example |\n| `HISTORY.md` | no | Version history (if present) |\n\nAlso read:\n- The corresponding command file: `commands/{command-name}.md`\n- The AGENTS.md entry for this skill\n\nIf reading files is not possible (MCP/embedded environment), ask the user\nto paste the content of each file before proceeding (see Degraded Mode).\n\n### Step 3: Run Tier 1 . Structural Checks\n\nRun these deterministic checks. Each produces a `PASS` or `FAIL` line.\n\n| Check ID | What to check | Pass condition |\n|----------|--------------|----------------|\n| `frontmatter-at-byte-zero` | First line of SKILL.md, references/TEMPLATE.md, references/EXAMPLE.md is exactly `---` | Line 1 is the opening `---` fence with no preceding HTML comment, BOM, or whitespace. Severity: FAIL. Reference: `library/skill-output-samples/SAMPLE_CREATION.md` Section 5. |\n| `name-match` | Frontmatter `name` matches directory name | Exact string match |\n| `description-present` | Frontmatter `description` exists | Non-empty value |\n| `description-length` | Description word count | 20-100 words |\n| `version-present` | Frontmatter `version` exists | Non-empty, valid SemVer |\n| `updated-present` | Frontmatter `updated` exists | Non-empty, ISO date |\n| `license-present` | Frontmatter `license` exists | Non-empty value |\n| `phase-classification` | Phase/classification consistency | Domain has `phase:`, foundation/utility has `classification:`, not both |\n| `template-exists` | `references/TEMPLATE.md` exists | File present |\n| `template-sections` | TEMPLATE.md has sufficient structure | ≥3 `##` level-2 headers |\n| `example-exists` | `references/EXAMPLE.md` exists | File present |\n| `command-exists` | Command file exists in `commands/` | File present and references correct skill path |\n| `agents-entry` | AGENTS.md has an entry for this skill | Entry exists with matching `**Path:**` |\n\n### Step 4: Run Tier 2 . Quality Checks\n\nRun these LLM-assessed checks. Each produces a `PASS`, `WARN`, or `INFO`\nline. Tier 2 findings are capped at `WARN` unless objectively grounded\n(placeholder leakage is the exception . it can `FAIL`).\n\n| Check ID | What to assess | How to assess | Max severity |\n|----------|---------------|---------------|-------------|\n| `output-contract-coverage` | SKILL.md references the template | Check for explicit reference to `references/TEMPLATE.md` or \"use the template\" in an Output section. Accept either pattern as valid. WARN only if template is not referenced at all. | WARN |\n| `checklist-verifiability` | Quality checklist items are testable | Read each checklist item. Flag items that are vague (\"is good quality\") vs. specific (\"metrics are measurable\"). WARN if ≥2 items are vague. | WARN |\n| `example-completeness` | EXAMPLE.md fills all template sections | Compare `##` headers in TEMPLATE.md against `##` headers in EXAMPLE.md. WARN if EXAMPLE.md is missing sections that appear in the template. Also check for unresolved placeholders. Line count is informational only . report it but do not gate on it. | WARN |\n| `template-example-alignment` | EXAMPLE.md follows TEMPLATE.md structure | Compare section header ordering. WARN if EXAMPLE.md has sections in a different order or uses different header names than TEMPLATE.md. | WARN |\n| `description-actionability` | Description tells *when* to use the skill | Check for a trigger phrase like \"Use when...\" or \"Use for...\" in the frontmatter description. WARN if the description only says *what* the skill does without indicating *when* to use it. | WARN |\n| `instruction-clarity` | Instructions are numbered and imperative | Check for `### Step` headings or a numbered list pattern in the Instructions section. WARN if instructions are prose paragraphs without clear step structure. | WARN |\n| `placeholder-leakage` | No leftover scaffolding in any shipped file | Scan SKILL.md, TEMPLATE.md, and EXAMPLE.md for: `[Placeholder]` or `[Feature Name]` patterns, `<!-- ... -->` HTML comments (except the license header), template guidance blockquotes that should have been removed, and authoring notes like \"TODO\" or \"FIXME\". FAIL if any are found . this is objectively grounded. | FAIL |\n| `when-not-to-use` | \"When NOT to Use\" section present in SKILL.md | Check for a section with \"When NOT to Use\" or similar heading. INFO only . this is present in 1/27 shipped skills and is not yet a convention. | INFO |\n\n**Quality standard framing:** These checks validate against current library\nconventions . what the shipped library actually does today. Findings graded\nWARN or INFO represent the v2.8 quality standard that newer skills (built\nwith `/pm-skill-builder`) meet. Older skills may legitimately receive these\nfindings until iterated through the lifecycle.\n\n### Step 5: Produce the Validation Report\n\nAssemble the report using this exact structure. F-11 (`/pm-skill-iterate`)\nparses this report by section headings and pipe-delimited fields.\n\n```\n# Validation Report: {skill-name}\nDate: {YYYY-MM-DD}\nSkill version: {version from frontmatter}\nValidator version: 1.0.0\nReport schema: v1\nResult: {PASS | WARN | FAIL}\n\n## Summary\n{1-2 sentence overall assessment.}\nErrors: {n} | Warnings: {n} | Info: {n}\n\n> Tier 2 findings are heuristic quality assessments and may require human review.\n\n## Structural Checks\n- {STATUS} | structural | {check-id} | {message}\n- {STATUS} | structural | {check-id} | {message}\n...\n\n## Quality Checks\n- {STATUS} | quality | {check-id} | {message}\n- {STATUS} | quality | {check-id} | {message}\n...\n\n## Recommendations\n1. {STATUS} | {check-id} | Target: {file-path}\n   Action: {what to do}\n2. {STATUS} | {check-id} | Target: {file-path}\n   Action: {what to do}\n...\n```\n\n**Report rules:**\n\n- **Result** = worst severity found: any FAIL → `FAIL`, else any WARN → `WARN`, else `PASS`.\n- **Structural Checks**: one line per Tier 1 check. STATUS is `PASS` or `FAIL`.\n- **Quality Checks**: one line per Tier 2 check. STATUS is `PASS`, `WARN`, or `INFO`.\n- **Recommendations**: only include checks that did NOT pass. Each recommendation\n  includes the check ID, the target file path, and a specific action.\n- If all checks pass, the Recommendations section should say: \"No issues found.\"\n- Omit passing checks from Recommendations . only list findings that need action.\n\n**Batch mode output** (when input is `--all`):\n\nRun Tier 1 structural checks only across all skills. Produce a summary table:\n\n```\n# Batch Validation Summary\nDate: {YYYY-MM-DD}\nValidator version: 1.0.0\nReport schema: v1\nSkills checked: {n}\n\n| Skill | Result | Errors | Warnings |\n|-------|--------|--------|----------|\n| deliver-prd | PASS | 0 | 0 |\n| define-hypothesis | WARN | 0 | 1 |\n| foundation-persona | FAIL | 1 | 0 |\n...\n\nSkills passing: {n}/{total}\nRun `/pm-skill-validate {skill}` for a detailed report.\n```\n\n## Degraded Mode\n\nIf you cannot read skill files directly (e.g., running via MCP or in an\nembedded environment without file system access):\n\n1. Ask the user to provide the content of each required file:\n   - `skills/{name}/SKILL.md`\n   - `skills/{name}/references/TEMPLATE.md`\n   - `skills/{name}/references/EXAMPLE.md`\n2. Run all checks against the provided content.\n3. Note in the report: \"Validated from user-provided content (file system not available).\"\n4. Batch mode is not available in degraded mode . single skill only.\n\n## Output Contract\n\nThe validator MUST produce a validation report following the format in Step 5.\n\nThe report:\n- Uses the exact section headings: `## Summary`, `## Structural Checks`,\n  `## Quality Checks`, `## Recommendations`\n- Uses pipe-delimited check lines: `STATUS | TIER | CHECK-ID | message`\n- Uses pipe-delimited recommendations: `STATUS | CHECK-ID | Target: path`\n  followed by `Action: description` on the next line\n- Includes `Report schema: v1` in the header for F-11 compatibility\n- Includes the Tier 2 caveat line in the Summary section\n\n## Quality Checklist\n\nBefore delivering the report, verify:\n\n- [ ] All Tier 1 structural checks were run (not skipped)\n- [ ] All Tier 2 quality checks were run (not skipped) . single skill mode only\n- [ ] Report follows the exact section and line format from Step 5\n- [ ] Every non-passing check appears in Recommendations with a target file path\n- [ ] Result field reflects the worst severity found\n- [ ] Tier 2 findings are capped at WARN (except placeholder-leakage which can FAIL)\n- [ ] No Tier 2 check was marked FAIL unless objectively grounded\n\n## Examples\n\nSee `references/EXAMPLE.md` for a completed validation report demonstrating\nboth Tier 1 and Tier 2 checks against a real shipped skill.","tags":["utility","skill","validate","skills","product-on-purpose","agent-skills","ai-skills","claude-code","claude-desktop","design-sprint","foundation-sprint","openskills"],"capabilities":["skill","source-product-on-purpose","skill-utility-pm-skill-validate","topic-agent-skills","topic-ai-skills","topic-claude-code","topic-claude-desktop","topic-design-sprint","topic-foundation-sprint","topic-openskills","topic-product-management","topic-skill-families","topic-triple-diamond"],"categories":["pm-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/product-on-purpose/pm-skills/utility-pm-skill-validate","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add product-on-purpose/pm-skills","source_repo":"https://github.com/product-on-purpose/pm-skills","install_from":"skills.sh"}},"qualityScore":"0.560","qualityRationale":"deterministic score 0.56 from registry signals: · indexed on github topic:agent-skills · 221 github stars · SKILL.md body (10,670 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:55:02.089Z","embedding":null,"createdAt":"2026-04-18T22:09:32.538Z","updatedAt":"2026-05-18T18:55:02.089Z","lastSeenAt":"2026-05-18T18:55:02.089Z","tsv":"'-100':473 '-11':995,1415 '-2':536,1035 '/pm-skill-builder':134,189,967 '/pm-skill-iterate':78,150,197,996 '/pm-skill-validate':1263 '/prd':253 '/references/example.md':1311 '/references/template.md':1308 '/skill.md':1305 '0':1244,1245,1250,1257 '1':89,232,292,391,426,1034,1086,1133,1208,1251,1256,1291,1436,1522 '1.0.0':1025,1229 '1/27':925 '2':104,310,315,579,597,688,1046,1099,1146,1312,1420,1445,1488,1503,1525 '20':472 '3':388,534,1320 '4':576,1335 '5':305,444,982,1361,1466 'accept':236,646 'access':1290 'across':295,1212 'action':32,770,1095,1108,1175,1198,1400 'actual':949 'agent':561 'agents-entri':560 'agents.md':359,563 'align':742 'also':347,720 'appear':716,1472 'ask':223,372,1292 'assembl':987 'assess':108,586,618,621,1038,1051 'audit':6,50,161 'author':878 'avail':1334,1340 'batch':166,283,312,1199,1219,1336 'blockquot':871 'bom':436 'built':965 'byte':415 'cannot':1273 'canon':257 'cap':600,1491 'caveat':1421 'chang':159 'check':26,36,85,92,110,205,294,393,397,405,409,581,587,614,632,721,778,818,907,939,1058,1062,1068,1072,1076,1082,1089,1102,1128,1134,1141,1147,1157,1166,1178,1190,1210,1234,1315,1371,1373,1379,1384,1394,1438,1447,1471,1504,1526 'check-id':1061,1067,1075,1081,1088,1101,1383,1393 'checklist':123,662,665,671,1428 'checklist-verifi':661 'ci':95,204,219 'clariti':812 'classif':509,517 'clear':838 'coher':109 'command':252,351,353,355,546,548,552 'command-exist':545 'command-nam':354 'comment':435,864 'compar':701,747 'compat':1416 'complet':121,176,695,1516 'condit':411 'confirm':143 'consist':511 'consum':80 'content':378,1298,1319,1330 'contract':114,626,1348 'contribut':171 'convent':15,62,147,158,933,944 'correct':557 'correspond':350 'count':102,471,726 'coverag':627 'creat':130,182 'criteria':18,65 'current':942 'date':496,1013,1222 'dd':1017,1226 'deeper':217 'deeper-than-ci':216 'defin':1247 'define-hypothesi':1246 'degrad':385,1269,1342 'delimit':1006,1378,1390 'deliv':246,1241,1430 'deliver-prd':245,1240 'demonstr':1519 'descript':100,457,460,467,469,769,771,792,796,1401 'description-action':768 'description-length':466 'description-pres':456 'detail':1267 'determinist':91,396 'differ':758,762 'direct':1277 'directori':243,258,265,277,325,451 'domain':512 'e.g':1278 'edit':139 'either':647 'els':1121,1125 'embed':1285 'empti':464,483,494,505 'entri':360,562,566,570 'environ':371,1286 'error':1039,1238 'everi':1467 'exact':424,453,992,1366,1459 'exampl':120,340,539,694,741,1511 'example-complet':693 'example-exist':538 'example.md':696,708,711,743,753,856 'except':610,865,1494 'exist':8,52,268,282,461,480,491,502,522,524,540,542,547,550,571 'explicit':634 'f':994,1414 'fail':275,403,440,613,884,893,1032,1119,1120,1139,1255,1500,1507 'featur':860 'feed':198 'fenc':430 'field':1007,1481 'file':98,318,321,326,352,366,381,525,543,549,553,851,1093,1106,1170,1276,1288,1302,1331,1478 'file-path':1092,1105 'fill':697 'find':30,598,952,975,1047,1195,1489 'first':417 'fix':191 'fixm':883 'flag':673 'follow':228,744,1356,1398,1457 'form':242 'format':1358,1463 'found':888,1117,1187,1486 'foundat':1253 'foundation-persona':1252 'foundation/utility':515 'frame':937 'frontmatt':96,331,413,448,459,478,489,500,791,1022 'frontmatter-at-byte-zero':412 'full':248 'gate':735 'good':679 'grade':29,953 'ground':605,892,1510 'guidanc':870 'head':821,918,1002,1368 'header':537,702,706,749,763,868,1412 'heurist':1049 'histori':344 'history.md':341 'html':434,863 'human':73,1055 'hypothesi':1248 'id':406,615,1063,1069,1077,1083,1090,1103,1167,1385,1395 'identifi':152,233 'immedi':270 'imper':817 'improv':155,193 'includ':1156,1164,1406,1417 'indic':804 'info':594,919,934,956,1043,1153 'inform':728 'input':82,273,279,287,1203 'instruct':221,332,811,813,829,833 'instruction-clar':810 'interact':215 'iso':495 'issu':1186 'item':124,666,672,674,689 'iter':977 'leakag':607,844,1497 'leftov':846 'legitim':972 'length':468 'level':535 'librari':943,948 'library/skill-output-samples/sample_creation.md':442 'licens':498,501,867 'license-pres':497 'lifecycl':980 'like':783,880 'line':404,418,425,595,725,1130,1143,1380,1405,1422,1462 'list':825,1194 'llm':107,585 'llm-assess':106,584 'manual':138 'mark':1506 'match':447,450,455,573 'max':622 'may':971,1053 'mcp':1281 'mcp/embedded':370 'md':357 'measur':685 'meet':40,968 'messag':1064,1070,1078,1084,1386 'metric':683 'mirror':94 'miss':713 'mm':1016,1225 'mode':167,284,313,386,1200,1270,1337,1343,1454 'must':1351 'n':1040,1042,1044,1235,1260 'name':97,239,244,261,356,446,449,452,764,861,1012,1304,1307,1310 'name-match':445 'need':154,164,1197 'new':184 'newer':963 'next':1404 'non':463,482,493,504,1469 'non-empti':462,481,492,503 'non-pass':1468 'note':879,1321 'number':815,824 'object':604,891,1509 'older':969 'omit':1188 'one':1129,1142 'open':429 'order':750,759 'output':113,335,625,644,1201,1347 'output-contract-coverag':624 'overal':1037 'paragraph':836 'pars':997 'pass':146,401,410,591,1030,1126,1137,1150,1161,1179,1189,1243,1259,1470 'pass/fail':25 'past':376 'path':249,259,559,574,1094,1107,1171,1397,1479 'pattern':648,826,862 'per':1131,1144 'persona':1254 'phase':508,514 'phase-classif':507 'phase/classification':510 'phrase':782 'pipe':1005,1377,1389 'pipe-delimit':1004,1376,1388 'pipelin':208 'placehold':606,724,843,858,1496 'placeholder-leakag':842,1495 'pm':3,10,45,54 'pm-skill':9,53 'possibl':369 'prd':247,1242 'preced':433 'presenc':99 'present':346,458,477,488,499,526,544,554,904,923 'proceed':383 'produc':19,67,299,399,589,983,1215,1352 'prose':835 'provid':1296,1318,1329 'purpos':328 'qualiti':17,64,105,174,580,664,680,935,960,1050,1071,1074,1080,1140,1372,1427,1446 'read':316,319,348,365,669,1274 'real':1529 'receiv':973 'recommend':33,1085,1154,1163,1181,1192,1374,1391,1474 'refer':115,441,556,629,635 'referenc':657 'references/example.md':337,422,541,1513 'references/template.md':333,421,523,637 'reflect':1482 'remov':876 'repo':41,59 'report':23,70,201,269,272,730,986,989,999,1009,1026,1112,1230,1268,1324,1355,1363,1407,1432,1456,1518 'repres':957 'requir':327,1054,1301 'resolv':254 'result':274,1029,1114,1237,1480 'review':169,1056 'rule':1113 'run':149,203,290,308,389,394,577,582,1206,1262,1279,1313,1440,1449 'say':798,1184 'scaffold':847 'scan':75,852 'schema':1027,1231,1408 'scratch':187 'scripts/lint-skills-frontmatter.sh':210 'section':443,529,645,700,714,748,755,830,903,910,1001,1182,1367,1426,1460 'see':303,384,1512 'semver':485 'sentenc':1036 'sever':28,439,623,1116,1485 'severity-grad':27 'ship':44,136,850,926,947,1530 'similar':917 'singl':1344,1452 'skill':4,11,12,39,46,49,55,56,132,141,163,172,185,195,212,227,238,260,264,276,278,297,317,324,363,558,569,777,801,927,964,970,1011,1018,1214,1233,1236,1258,1264,1275,1303,1306,1309,1345,1453,1531 'skill-nam':1010 'skill-utility-pm-skill-validate' 'skill.md':329,420,628,853,906 'skills/deliver-prd/skill.md':250 'skip':1442,1451 'slash':251 'source-product-on-purpose' 'specif':682,1174 'standard':42,936,961 'status':1059,1065,1073,1079,1087,1100,1135,1148,1381,1392 'step':230,231,304,314,387,575,820,839,981,1360,1465 'still':145 'string':454 'structur':14,21,61,90,293,392,533,746,840,993,1057,1060,1066,1127,1209,1370,1437 'suffici':532 'summari':301,1033,1217,1221,1369,1425 'system':1289,1332 'tabl':302,1218 'target':235,1091,1104,1169,1396,1477 'tell':772 'templat':117,336,521,528,631,641,654,699,719,740,869 'template-example-align':739 'template-exist':520 'template-sect':527 'template.md':530,704,745,766,854 'testabl':125,668 'tier':87,88,103,291,309,390,578,596,1045,1132,1145,1207,1382,1419,1435,1444,1487,1502,1521,1524 'today':951 'todo':881 'topic-agent-skills' 'topic-ai-skills' 'topic-claude-code' 'topic-claude-desktop' 'topic-design-sprint' 'topic-foundation-sprint' 'topic-openskills' 'topic-product-management' 'topic-skill-families' 'topic-triple-diamond' 'total':1261 'trigger':781 'two':86 'unless':603,1508 'unresolv':723 'updat':165,487,490 'updated-pres':486 'use':34,128,180,188,196,209,639,761,775,784,787,807,898,902,915,990,1364,1375,1387 'user':374,1294,1328 'user-provid':1327 'util':2 'utility-pm-skill-valid':1 'v1':1028,1232,1409 'v2.8':959 'vagu':677,691 'valid':5,22,47,69,84,220,225,271,484,650,940,985,1008,1023,1220,1227,1325,1350,1354,1517 'valu':465,506 'verifi':663,1433 'version':343,476,479,1019,1020,1024,1228 'version-pres':475 'via':1280 'vs':681 'warn':592,602,651,660,686,692,709,738,751,767,793,809,831,841,954,1031,1041,1123,1124,1151,1239,1249,1493 'when-not-to-us':894 'whether':37 'whitespac':438 'without':803,837,1287 'word':101,470,474 'work':339 'worst':1115,1484 'yes':330,334,338 'yet':931 'yyyi':1015,1224 'yyyy-mm-dd':1014,1223 'zero':416","prices":[{"id":"e5164b89-6233-4058-b6f9-1e762b4a16c3","listingId":"c02c7bae-2994-4ff5-acb5-47accb1f6871","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"product-on-purpose","category":"pm-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:09:32.538Z"}],"sources":[{"listingId":"c02c7bae-2994-4ff5-acb5-47accb1f6871","source":"github","sourceId":"product-on-purpose/pm-skills/utility-pm-skill-validate","sourceUrl":"https://github.com/product-on-purpose/pm-skills/tree/main/skills/utility-pm-skill-validate","isPrimary":false,"firstSeenAt":"2026-04-18T22:09:32.538Z","lastSeenAt":"2026-05-18T18:55:02.089Z"}],"details":{"listingId":"c02c7bae-2994-4ff5-acb5-47accb1f6871","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"product-on-purpose","slug":"utility-pm-skill-validate","github":{"repo":"product-on-purpose/pm-skills","stars":221,"topics":["agent-skills","ai-skills","claude-code","claude-desktop","design-sprint","foundation-sprint","openskills","product-management","skill-families","triple-diamond"],"license":"apache-2.0","html_url":"https://github.com/product-on-purpose/pm-skills","pushed_at":"2026-05-18T18:13:01Z","description":"55 plug-and-play PM skills for AI agents: 26 Triple Diamond phase + 8 foundation (persona, OKR writer, meeting family, lean canvas) + 6 utility (skill lifecycle) + 15 tool implementing canonical Foundation Sprint + Design Sprint methodologies. Templates, workflows, samples, CI-enforced family contracts. Apache 2.0.","skill_md_sha":"4e9a1d5f9c30a2889144bd36fb8e0a35a75ec933","skill_md_path":"skills/utility-pm-skill-validate/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/product-on-purpose/pm-skills/tree/main/skills/utility-pm-skill-validate"},"layout":"multi","source":"github","category":"pm-skills","frontmatter":{"name":"utility-pm-skill-validate","license":"Apache-2.0","description":"Audits an existing pm-skills skill against structural conventions and quality criteria. Produces a structured validation report with pass/fail checks, severity-graded findings, and actionable recommendations. Use when checking whether a skill meets repo standards before shipping or after making changes."},"skills_sh_url":"https://skills.sh/product-on-purpose/pm-skills/utility-pm-skill-validate"},"updatedAt":"2026-05-18T18:55:02.089Z"}}