@skill-graph/cli 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/CHANGELOG.md +247 -0
  2. package/LICENSE +200 -0
  3. package/NOTICE +62 -0
  4. package/README.md +398 -0
  5. package/SKILL_GRAPH.md +443 -0
  6. package/bin/skill-graph.js +374 -0
  7. package/docs/ADOPTION.md +117 -0
  8. package/docs/CONFORMANCE.md +66 -0
  9. package/docs/PRIMER.md +384 -0
  10. package/docs/QUICKSTART-30MIN.md +333 -0
  11. package/docs/ROUTING-METRICS.md +120 -0
  12. package/docs/SKILL-MD-FORMAT-COMPATIBILITY.md +127 -0
  13. package/docs/SKILL_AUDIT_CHECKLIST.md +199 -0
  14. package/docs/SKILL_AUDIT_LOOP.md +195 -0
  15. package/docs/SKILL_METADATA_PROTOCOL.md +609 -0
  16. package/docs/_archived/marketplace-publication-priority-2026-05-18.md +239 -0
  17. package/docs/adr/0001-predicate-set.md +69 -0
  18. package/docs/adr/0002-json-ld-context.md +82 -0
  19. package/docs/adr/0003-ontoclean-rigidity-tags.md +65 -0
  20. package/docs/adr/0004-persistent-identifiers.md +74 -0
  21. package/docs/adr/0005-freshness-consolidation.md +70 -0
  22. package/docs/adr/0006-revise-predicate-rename.md +105 -0
  23. package/docs/adr/0007-audit-loop-cadence.md +99 -0
  24. package/docs/adr/0008-skill-surface-split-and-curation-policy.md +93 -0
  25. package/docs/category-consumers.md +168 -0
  26. package/docs/concept-map.md +194 -0
  27. package/docs/diagrams/drift-states.mmd +21 -0
  28. package/docs/diagrams/manifest-pipeline.mmd +25 -0
  29. package/docs/diagrams/routing-harness.mmd +41 -0
  30. package/docs/diagrams/starter-graph.mmd +53 -0
  31. package/docs/field-decision-guide.md +315 -0
  32. package/docs/field-rationale.md +211 -0
  33. package/docs/field-reference.generated.md +624 -0
  34. package/docs/field-reference.md +1426 -0
  35. package/docs/glossary.md +190 -0
  36. package/docs/head-noun-glossary.md +63 -0
  37. package/docs/images/audit-phases.png +0 -0
  38. package/docs/images/drift-states.png +0 -0
  39. package/docs/images/graded-mode.png +0 -0
  40. package/docs/images/manifest-pipeline.png +0 -0
  41. package/docs/images/routing-harness.png +0 -0
  42. package/docs/images/skill-anatomy.png +0 -0
  43. package/docs/images/starter-graph.png +0 -0
  44. package/docs/images/system-model.png +0 -0
  45. package/docs/integrations/github-actions.md +155 -0
  46. package/docs/manifest-field-mapping.md +443 -0
  47. package/docs/marketplace-publication-queue.generated.md +240 -0
  48. package/docs/marketplace-release-agent-prompt.md +82 -0
  49. package/docs/marketplace-skill-candidate-list.md +272 -0
  50. package/docs/marketplace-syndication.md +222 -0
  51. package/docs/migration-sample-review.md +155 -0
  52. package/docs/migrations/v4-to-v5.md +168 -0
  53. package/docs/migrations/v5-to-v6.md +221 -0
  54. package/docs/name-exceptions.yaml +37 -0
  55. package/docs/plans/marketplace-p1-public-migration-plan.md +41 -0
  56. package/docs/plans/multi-root-workspace.md +148 -0
  57. package/docs/plans/scripts-roadmap.md +107 -0
  58. package/docs/plans/v4-schema-bump.md +160 -0
  59. package/docs/plans/wave-2-extraction.md +122 -0
  60. package/docs/positioning-vs-marketplaces.md +175 -0
  61. package/docs/proposals/skill-audit-loop-positioning.md +160 -0
  62. package/docs/quality-doctrine.md +138 -0
  63. package/docs/recommended-skills.md +150 -0
  64. package/docs/research/skill-comprehension-eval-research.md +1830 -0
  65. package/docs/research/skill-retrieval-evidence.md +66 -0
  66. package/docs/skill-metadata-protocol.md +471 -0
  67. package/docs/skills-sh-maintainer-cleanup-request.md +80 -0
  68. package/examples/audits/a11y/findings.md +52 -0
  69. package/examples/audits/a11y/scorecard.md +21 -0
  70. package/examples/audits/a11y/verdict.md +44 -0
  71. package/examples/audits/debugging/findings.md +59 -0
  72. package/examples/audits/debugging/scorecard.md +22 -0
  73. package/examples/audits/debugging/verdict.md +33 -0
  74. package/examples/audits/documentation/findings.md +59 -0
  75. package/examples/audits/documentation/scorecard.md +22 -0
  76. package/examples/audits/documentation/verdict.md +33 -0
  77. package/examples/evals/a11y.json +140 -0
  78. package/examples/evals/api-design.json +52 -0
  79. package/examples/evals/code-review.json +52 -0
  80. package/examples/evals/data-modeling.json +52 -0
  81. package/examples/evals/database-migration.json +52 -0
  82. package/examples/evals/debugging.json +118 -0
  83. package/examples/evals/dependency-architecture.json +52 -0
  84. package/examples/evals/design-system-architecture.json +52 -0
  85. package/examples/evals/error-tracking.json +52 -0
  86. package/examples/evals/event-contract-design.json +52 -0
  87. package/examples/evals/form-ux-architecture.json +52 -0
  88. package/examples/evals/framework-fit-analysis.json +52 -0
  89. package/examples/evals/graph-audit.json +139 -0
  90. package/examples/evals/information-architecture.json +52 -0
  91. package/examples/evals/interaction-feedback.json +52 -0
  92. package/examples/evals/interaction-patterns.json +52 -0
  93. package/examples/evals/layout-composition.json +52 -0
  94. package/examples/evals/lint-overlay.json +117 -0
  95. package/examples/evals/microcopy.json +52 -0
  96. package/examples/evals/observability-modeling.json +52 -0
  97. package/examples/evals/pattern-recognition.json +96 -0
  98. package/examples/evals/performance-engineering.json +52 -0
  99. package/examples/evals/refactor.json +128 -0
  100. package/examples/evals/semiotics.json +52 -0
  101. package/examples/evals/skill-infrastructure.json +96 -0
  102. package/examples/evals/skill-router.json +140 -0
  103. package/examples/evals/skill-router.routing.json +113 -0
  104. package/examples/evals/system-interface-contracts.json +52 -0
  105. package/examples/evals/task-analysis.json +52 -0
  106. package/examples/evals/testing-strategy.json +118 -0
  107. package/examples/evals/type-safety.json +249 -0
  108. package/examples/evals/visual-design-foundations.json +52 -0
  109. package/examples/evals/webhook-integration.json +52 -0
  110. package/examples/exports/a11y.skill-md.md +80 -0
  111. package/examples/exports/debugging.skill-md.md +80 -0
  112. package/examples/exports/refactor.skill-md.md +78 -0
  113. package/examples/exports/testing-strategy.skill-md.md +81 -0
  114. package/examples/projects/markdown-static-site/README.md +115 -0
  115. package/examples/projects/markdown-static-site/skills/content-source-router/SKILL.md +131 -0
  116. package/examples/projects/markdown-static-site/skills/image-optimization-pipeline-config/SKILL.md +132 -0
  117. package/examples/projects/markdown-static-site/skills/link-rot-detection/SKILL.md +103 -0
  118. package/examples/projects/markdown-static-site/skills/markdown-post-frontmatter-validation/SKILL.md +133 -0
  119. package/examples/projects/markdown-static-site/skills/migrate-posts-to-v2-frontmatter/SKILL.md +140 -0
  120. package/examples/projects/saas-stripe-postgres/README.md +208 -0
  121. package/examples/projects/saas-stripe-postgres/db/migrations/0004_canonicalize_orders.sql +37 -0
  122. package/examples/projects/saas-stripe-postgres/db/schema.sql +112 -0
  123. package/examples/projects/saas-stripe-postgres/skills/migrate-orders-to-canonical-schema/SKILL.md +149 -0
  124. package/examples/projects/saas-stripe-postgres/skills/nextjs-server-action-validation/SKILL.md +154 -0
  125. package/examples/projects/saas-stripe-postgres/skills/payment-provider-router/SKILL.md +153 -0
  126. package/examples/projects/saas-stripe-postgres/skills/postgres-rls-pattern/SKILL.md +163 -0
  127. package/examples/projects/saas-stripe-postgres/skills/stripe-webhook-signature-verification/SKILL.md +137 -0
  128. package/examples/protocol/skill-metadata-template.md +301 -0
  129. package/examples/protocol/skills.manifest.sample.json +13245 -0
  130. package/examples/skill-metadata-template.md +317 -0
  131. package/examples/skills.manifest.sample.json +13519 -0
  132. package/examples/tests/v3-1-skos-fixture/SKILL.md +93 -0
  133. package/marketplace/README.md +17 -0
  134. package/marketplace/skills/a11y/SKILL.md +66 -0
  135. package/marketplace/skills/acid-fundamentals/SKILL.md +106 -0
  136. package/marketplace/skills/agent-engineering/SKILL.md +386 -0
  137. package/marketplace/skills/agent-eval-design/SKILL.md +55 -0
  138. package/marketplace/skills/ai-native-development/SKILL.md +294 -0
  139. package/marketplace/skills/api-design/SKILL.md +60 -0
  140. package/marketplace/skills/architecture-decision-records/SKILL.md +55 -0
  141. package/marketplace/skills/background-jobs/SKILL.md +265 -0
  142. package/marketplace/skills/bounded-context-mapping/SKILL.md +55 -0
  143. package/marketplace/skills/cap-theorem-tradeoffs/SKILL.md +127 -0
  144. package/marketplace/skills/client-server-boundary/SKILL.md +187 -0
  145. package/marketplace/skills/code-review/SKILL.md +120 -0
  146. package/marketplace/skills/color-system-design/SKILL.md +43 -0
  147. package/marketplace/skills/component-architecture/SKILL.md +126 -0
  148. package/marketplace/skills/compression/SKILL.md +112 -0
  149. package/marketplace/skills/conceptual-modeling/SKILL.md +181 -0
  150. package/marketplace/skills/connection-pooling/SKILL.md +105 -0
  151. package/marketplace/skills/constraint-awareness/SKILL.md +287 -0
  152. package/marketplace/skills/content-monitor/SKILL.md +209 -0
  153. package/marketplace/skills/context-engineering/SKILL.md +320 -0
  154. package/marketplace/skills/context-graph/SKILL.md +174 -0
  155. package/marketplace/skills/context-management/SKILL.md +174 -0
  156. package/marketplace/skills/context-window/SKILL.md +239 -0
  157. package/marketplace/skills/contract-testing/SKILL.md +120 -0
  158. package/marketplace/skills/cron-scheduling/SKILL.md +223 -0
  159. package/marketplace/skills/dark-mode-implementation/SKILL.md +47 -0
  160. package/marketplace/skills/data-modeling/SKILL.md +59 -0
  161. package/marketplace/skills/data-modeling-fundamentals/SKILL.md +117 -0
  162. package/marketplace/skills/database-migration/SKILL.md +429 -0
  163. package/marketplace/skills/debugging/SKILL.md +67 -0
  164. package/marketplace/skills/dependency-architecture/SKILL.md +58 -0
  165. package/marketplace/skills/design-module-composition/SKILL.md +43 -0
  166. package/marketplace/skills/design-system-architecture/SKILL.md +61 -0
  167. package/marketplace/skills/design-thinking/SKILL.md +44 -0
  168. package/marketplace/skills/diagnosis/SKILL.md +296 -0
  169. package/marketplace/skills/diff-analysis/SKILL.md +188 -0
  170. package/marketplace/skills/e2e-test-design/SKILL.md +113 -0
  171. package/marketplace/skills/entity-relationship-modeling/SKILL.md +218 -0
  172. package/marketplace/skills/epistemic-grounding/SKILL.md +112 -0
  173. package/marketplace/skills/error-boundary/SKILL.md +235 -0
  174. package/marketplace/skills/error-tracking/SKILL.md +261 -0
  175. package/marketplace/skills/eval-driven-development/SKILL.md +147 -0
  176. package/marketplace/skills/evaluation/SKILL.md +113 -0
  177. package/marketplace/skills/event-contract-design/SKILL.md +60 -0
  178. package/marketplace/skills/event-storming/SKILL.md +56 -0
  179. package/marketplace/skills/form-ux-architecture/SKILL.md +60 -0
  180. package/marketplace/skills/framework-fit-analysis/SKILL.md +59 -0
  181. package/marketplace/skills/frontend-architecture/SKILL.md +43 -0
  182. package/marketplace/skills/generative-ui/SKILL.md +118 -0
  183. package/marketplace/skills/graph-audit/SKILL.md +81 -0
  184. package/marketplace/skills/guardrails/SKILL.md +118 -0
  185. package/marketplace/skills/hooks-patterns/SKILL.md +185 -0
  186. package/marketplace/skills/http-semantics/SKILL.md +136 -0
  187. package/marketplace/skills/ideation/SKILL.md +41 -0
  188. package/marketplace/skills/indexing-strategy/SKILL.md +108 -0
  189. package/marketplace/skills/information-architecture/SKILL.md +59 -0
  190. package/marketplace/skills/integration-test-design/SKILL.md +111 -0
  191. package/marketplace/skills/intent-recognition/SKILL.md +136 -0
  192. package/marketplace/skills/interaction-feedback/SKILL.md +59 -0
  193. package/marketplace/skills/interaction-patterns/SKILL.md +59 -0
  194. package/marketplace/skills/journey-mapping/SKILL.md +41 -0
  195. package/marketplace/skills/keywords/SKILL.md +213 -0
  196. package/marketplace/skills/knowledge-modeling/SKILL.md +232 -0
  197. package/marketplace/skills/layout-composition/SKILL.md +59 -0
  198. package/marketplace/skills/linguistics/SKILL.md +429 -0
  199. package/marketplace/skills/lint-overlay/SKILL.md +76 -0
  200. package/marketplace/skills/mental-models/SKILL.md +126 -0
  201. package/marketplace/skills/merge-queue/SKILL.md +94 -0
  202. package/marketplace/skills/methodology/SKILL.md +317 -0
  203. package/marketplace/skills/microcopy/SKILL.md +232 -0
  204. package/marketplace/skills/middleware-patterns/SKILL.md +363 -0
  205. package/marketplace/skills/mobile-responsive-ux/SKILL.md +287 -0
  206. package/marketplace/skills/mutation-testing/SKILL.md +112 -0
  207. package/marketplace/skills/naming-conventions/SKILL.md +112 -0
  208. package/marketplace/skills/observability-modeling/SKILL.md +59 -0
  209. package/marketplace/skills/ontology-modeling/SKILL.md +67 -0
  210. package/marketplace/skills/owasp-security/SKILL.md +153 -0
  211. package/marketplace/skills/pattern-recognition/SKILL.md +472 -0
  212. package/marketplace/skills/performance-budgets/SKILL.md +185 -0
  213. package/marketplace/skills/performance-engineering/SKILL.md +58 -0
  214. package/marketplace/skills/performance-testing/SKILL.md +125 -0
  215. package/marketplace/skills/printify/SKILL.md +42 -0
  216. package/marketplace/skills/prioritization/SKILL.md +118 -0
  217. package/marketplace/skills/problem-framing/SKILL.md +41 -0
  218. package/marketplace/skills/problem-locating-solving/SKILL.md +203 -0
  219. package/marketplace/skills/project-knowledge-extraction/SKILL.md +54 -0
  220. package/marketplace/skills/prompt-craft/SKILL.md +134 -0
  221. package/marketplace/skills/prompt-injection-defense/SKILL.md +132 -0
  222. package/marketplace/skills/property-based-testing/SKILL.md +100 -0
  223. package/marketplace/skills/prototyping/SKILL.md +43 -0
  224. package/marketplace/skills/query-optimization/SKILL.md +144 -0
  225. package/marketplace/skills/real-time-updates/SKILL.md +324 -0
  226. package/marketplace/skills/ref-patterns/SKILL.md +284 -0
  227. package/marketplace/skills/refactor/SKILL.md +65 -0
  228. package/marketplace/skills/rendering-models/SKILL.md +142 -0
  229. package/marketplace/skills/replication-patterns/SKILL.md +110 -0
  230. package/marketplace/skills/research-synthesis/SKILL.md +41 -0
  231. package/marketplace/skills/route-handler-design/SKILL.md +347 -0
  232. package/marketplace/skills/schema-evolution/SKILL.md +140 -0
  233. package/marketplace/skills/security-fundamentals/SKILL.md +139 -0
  234. package/marketplace/skills/semantic-center/SKILL.md +194 -0
  235. package/marketplace/skills/semantic-relations/SKILL.md +250 -0
  236. package/marketplace/skills/semantics/SKILL.md +366 -0
  237. package/marketplace/skills/semiotics/SKILL.md +230 -0
  238. package/marketplace/skills/seo-strategy/SKILL.md +260 -0
  239. package/marketplace/skills/server-actions-design/SKILL.md +243 -0
  240. package/marketplace/skills/server-components-design/SKILL.md +190 -0
  241. package/marketplace/skills/sharding-strategy/SKILL.md +123 -0
  242. package/marketplace/skills/shopify/SKILL.md +42 -0
  243. package/marketplace/skills/skill-infrastructure/SKILL.md +320 -0
  244. package/marketplace/skills/skill-router/SKILL.md +71 -0
  245. package/marketplace/skills/skill-scaffold/SKILL.md +105 -0
  246. package/marketplace/skills/snapshot-testing/SKILL.md +120 -0
  247. package/marketplace/skills/spec-driven-development/SKILL.md +148 -0
  248. package/marketplace/skills/state-machine-modeling/SKILL.md +56 -0
  249. package/marketplace/skills/state-management/SKILL.md +134 -0
  250. package/marketplace/skills/streaming-architecture/SKILL.md +194 -0
  251. package/marketplace/skills/summarization/SKILL.md +156 -0
  252. package/marketplace/skills/suspense-patterns/SKILL.md +265 -0
  253. package/marketplace/skills/system-interface-contracts/SKILL.md +59 -0
  254. package/marketplace/skills/task-analysis/SKILL.md +201 -0
  255. package/marketplace/skills/taxonomy-design/SKILL.md +66 -0
  256. package/marketplace/skills/test-coverage-strategy/SKILL.md +108 -0
  257. package/marketplace/skills/test-doubles-design/SKILL.md +98 -0
  258. package/marketplace/skills/test-driven-development/SKILL.md +96 -0
  259. package/marketplace/skills/testing-strategy/SKILL.md +67 -0
  260. package/marketplace/skills/theme-system-design/SKILL.md +43 -0
  261. package/marketplace/skills/tool-call-flow/SKILL.md +229 -0
  262. package/marketplace/skills/tool-call-strategy/SKILL.md +292 -0
  263. package/marketplace/skills/transaction-isolation/SKILL.md +98 -0
  264. package/marketplace/skills/type-safety/SKILL.md +177 -0
  265. package/marketplace/skills/typography-system/SKILL.md +43 -0
  266. package/marketplace/skills/usability-testing/SKILL.md +43 -0
  267. package/marketplace/skills/user-research/SKILL.md +43 -0
  268. package/marketplace/skills/vercel-composition-patterns/SKILL.md +157 -0
  269. package/marketplace/skills/version-control/SKILL.md +233 -0
  270. package/marketplace/skills/visual-design-foundations/SKILL.md +59 -0
  271. package/marketplace/skills/visual-hierarchy/SKILL.md +43 -0
  272. package/marketplace/skills/webhook-integration/SKILL.md +331 -0
  273. package/marketplace/skills/writing-humanizer/SKILL.md +380 -0
  274. package/package.json +67 -0
  275. package/schemas/manifest.schema.json +811 -0
  276. package/schemas/manifest.v2.schema.json +164 -0
  277. package/schemas/manifest.v3.schema.json +758 -0
  278. package/schemas/manifest.v4.schema.json +755 -0
  279. package/schemas/manifest.v5.schema.json +755 -0
  280. package/schemas/manifest.v6.schema.json +811 -0
  281. package/schemas/skill.context.jsonld +279 -0
  282. package/schemas/skill.schema.json +919 -0
  283. package/schemas/skill.v2.schema.json +201 -0
  284. package/schemas/skill.v3.schema.json +827 -0
  285. package/schemas/skill.v4.schema.json +822 -0
  286. package/schemas/skill.v5.schema.json +830 -0
  287. package/schemas/skill.v6.schema.json +946 -0
  288. package/schemas/vocabulary/keywords.json +180 -0
  289. package/schemas/vocabulary/workspace_tags.json +23 -0
  290. package/scripts/__tests__/migrate-skill-v2-to-v3.test.js +161 -0
  291. package/scripts/__tests__/migrate-skill-v3-to-v4.test.js +158 -0
  292. package/scripts/__tests__/test-export-parser-drift.js +149 -0
  293. package/scripts/__tests__/test-marketplace-export.js +114 -0
  294. package/scripts/__tests__/test-router-paths.js +82 -0
  295. package/scripts/__tests__/test-stability-promotion.js +244 -0
  296. package/scripts/__tests__/test-v3-1-alias-contract.js +109 -0
  297. package/scripts/__tests__/test-v3-1-skos-runtime.js +116 -0
  298. package/scripts/backfill-schema-version.js +198 -0
  299. package/scripts/build-field-reference.js +160 -0
  300. package/scripts/build-retrieval-baseline.js +511 -0
  301. package/scripts/check-markdown-links.js +211 -0
  302. package/scripts/check-protocol-consistency.js +979 -0
  303. package/scripts/export-marketplace-skills.js +610 -0
  304. package/scripts/export-skill.js +374 -0
  305. package/scripts/generate-manifest.js +787 -0
  306. package/scripts/lib/alias-contract.js +83 -0
  307. package/scripts/lib/audit-prompt-builder.js +771 -0
  308. package/scripts/lib/mock-grader.js +134 -0
  309. package/scripts/lib/parse-frontmatter.js +429 -0
  310. package/scripts/lib/roots.js +119 -0
  311. package/scripts/lint/check-archetype-sections.js +185 -0
  312. package/scripts/lint/check-category-enum.js +83 -0
  313. package/scripts/lint/check-routing-eval.js +146 -0
  314. package/scripts/lint/check-routing-quality.js +211 -0
  315. package/scripts/lint/check-stability-promotion.js +220 -0
  316. package/scripts/lint/format-code-frame.js +206 -0
  317. package/scripts/marketplace-install.js +125 -0
  318. package/scripts/migrate-category-to-enum.js +169 -0
  319. package/scripts/migrate-skill-v2-to-v3.js +424 -0
  320. package/scripts/migrate-skill-v3-to-v4.js +200 -0
  321. package/scripts/migrate-skill-v5-to-v6.js +304 -0
  322. package/scripts/restructure-by-category.js +85 -0
  323. package/scripts/seed-publication-classification.js +282 -0
  324. package/scripts/skill-audit.js +893 -0
  325. package/scripts/skill-graph-drift.js +483 -0
  326. package/scripts/skill-graph-route.js +766 -0
  327. package/scripts/skill-graph-routing-eval.js +393 -0
  328. package/scripts/skill-lint.js +1317 -0
  329. package/scripts/skill-overlap.js +213 -0
  330. package/scripts/verify-skill-md-export.js +201 -0
@@ -0,0 +1,287 @@
1
+ ---
2
+ name: constraint-awareness
3
+ description: "Use when prioritizing work in an AI-assisted codebase, designing agent autonomy levels, deciding what to automate vs keep manual, or evaluating whether a process/tool adds value. Covers Theory of Constraints for AI-era engineering: cheap code production, human review/validation/decision bottlenecks, Five Focusing Steps, constraint-aware process design, attention audits, and constraint-shift modeling. Do NOT use for task-effort estimation, backlog scoring with RICE/WSJF/ICE, or routing a task to a specific model."
4
+ license: MIT
5
+ compatibility: "Operating-model-agnostic. Applies whether the constraint is a single solo developer operating multiple agents, a small team where one senior engineer reviews everything, or a larger team where review capacity is the limiting factor. The framework adapts as the constraint identity changes."
6
+ allowed-tools: Read Grep
7
+ metadata:
8
+ metadata: "{\"schema_version\":6,\"version\":\"1.1.0\",\"type\":\"capability\",\"category\":\"foundations\",\"domain\":\"foundations/strategy\",\"scope\":\"portable\",\"owner\":\"skill-graph-maintainer\",\"freshness\":\"2026-05-16\",\"drift_check\":\"{\\\\\\\"last_verified\\\\\\\":\\\\\\\"2026-05-16\\\\\\\"}\",\"eval_artifacts\":\"planned\",\"eval_state\":\"unverified\",\"routing_eval\":\"absent\",\"comprehension_state\":\"present\",\"stability\":\"experimental\",\"keywords\":\"[\\\\\\\"theory of constraints\\\\\\\",\\\\\\\"goldratt five focusing steps\\\\\\\",\\\\\\\"bottleneck identification\\\\\\\",\\\\\\\"constraint of an ai-coding system\\\\\\\",\\\\\\\"human attention as constraint\\\\\\\",\\\\\\\"cost structure inversion ai\\\\\\\",\\\\\\\"what to automate vs keep manual\\\\\\\",\\\\\\\"batch decisions not interrupt\\\\\\\",\\\\\\\"options not questions\\\\\\\",\\\\\\\"constraint-aware process design\\\\\\\",\\\\\\\"attention budget\\\\\\\",\\\\\\\"reduce demand on the bottleneck\\\\\\\",\\\\\\\"elevate the constraint\\\\\\\",\\\\\\\"subordinate to the constraint\\\\\\\",\\\\\\\"constraint shift over time\\\\\\\",\\\\\\\"rework rate as constraint signal\\\\\\\",\\\\\\\"false dependency on the human\\\\\\\",\\\\\\\"over-engineering anti-pattern constraint\\\\\\\"]\",\"examples\":\"[\\\\\\\"we keep adding tooling and the agent throughput isn't going up — what TOC step are we missing?\\\\\\\",\\\\\\\"should this approval gate stay in the loop or be replaced by an automated check?\\\\\\\",\\\\\\\"the agents keep asking me clarifying questions and I'm answering 30 a day — what's the structural fix?\\\\\\\",\\\\\\\"we're considering a 4-model review panel on every architectural decision — does that subordinate to or overload the constraint?\\\\\\\",\\\\\\\"code production used to be the bottleneck; what does the new bottleneck look like once agents do all the typing?\\\\\\\",\\\\\\\"is this proposed automation a constraint-elevator or a non-constraint optimization that won't move throughput?\\\\\\\",\\\\\\\"the rework rate climbed from 12% to 24% over the quarter — which constraint step does that point at?\\\\\\\"]\",\"anti_examples\":\"[\\\\\\\"what's the ICE / RICE score for this initiative against five others\\\\\\\",\\\\\\\"estimate the effort tier for this ticket\\\\\\\",\\\\\\\"route this debugging task to the cheapest model that can solve it\\\\\\\",\\\\\\\"review this AI-generated PR for correctness\\\\\\\",\\\\\\\"design the production reliability layer for our agent system\\\\\\\"]\",\"relations\":\"{\\\\\\\"boundary\\\\\\\":[{\\\\\\\"skill\\\\\\\":\\\\\\\"ai-native-development\\\\\\\",\\\\\\\"reason\\\\\\\":\\\\\\\"ai-native-development is the conceptual frame for AI-coding (eras, autonomy slider, vibe vs agentic); constraint-awareness is the prioritization lens applied within that frame\\\\\\\"},{\\\\\\\"skill\\\\\\\":\\\\\\\"agent-engineering\\\\\\\",\\\\\\\"reason\\\\\\\":\\\\\\\"agent-engineering owns production reliability patterns (orchestration, error budgets, observability); constraint-awareness owns *which* of those to invest in based on where the bottleneck currently is\\\\\\\"},{\\\\\\\"skill\\\\\\\":\\\\\\\"code-review\\\\\\\",\\\\\\\"reason\\\\\\\":\\\\\\\"code-review evaluates one piece of work; constraint-awareness reasons about whether the review gate itself is the bottleneck\\\\\\\"},{\\\\\\\"skill\\\\\\\":\\\\\\\"tool-call-strategy\\\\\\\",\\\\\\\"reason\\\\\\\":\\\\\\\"tool-call-strategy decides per-action which tool an agent calls; constraint-awareness decides per-process whether that whole class of action should require human intervention at all\\\\\\\"}],\\\\\\\"related\\\\\\\":[\\\\\\\"ai-native-development\\\\\\\",\\\\\\\"agent-engineering\\\\\\\",\\\\\\\"code-review\\\\\\\"]}\",\"portability\":\"{\\\\\\\"readiness\\\\\\\":\\\\\\\"scripted\\\\\\\",\\\\\\\"targets\\\\\\\":[\\\\\\\"skill-md\\\\\\\"]}\",\"lifecycle\":\"{\\\\\\\"stale_after_days\\\\\\\":365,\\\\\\\"review_cadence\\\\\\\":\\\\\\\"quarterly\\\\\\\"}\",\"mental_model\":\"|\",\"purpose\":\"|\",\"boundary\":\"|\",\"analogy\":\"Constraint awareness is to AI-coding what Drum-Buffer-Rope is to a factory floor — the slowest machine on the line sets the pace for the whole plant; speeding up the other machines just piles inventory in front of the bottleneck. Adding more agents to an AI-coding team where review bandwidth is the constraint is the same as buying faster CNC mills when the constraint is the inspection station — the parts pile up at inspection, the lead time gets worse, and the new mills look efficient locally while the whole shop ships less per day.\",\"misconception\":\"|\",\"concept\":\"{\\\\\\\"definition\\\\\\\":\\\\\\\"Constraint awareness is the discipline of identifying the single resource that limits a system's throughput at any given time, and routing all improvement work through that resource. Drawn from Eliyahu Goldratt's Theory of Constraints (1984), it treats systems as throughput pipelines whose total output is bounded by their narrowest section — and treats local optimization of non-constraints as effort that produces no system-level gain.\\\\\\\",\\\\\\\"mental_model\\\\\\\":\\\\\\\"|\\\\\\\",\\\\\\\"purpose\\\\\\\":\\\\\\\"|\\\\\\\",\\\\\\\"boundary\\\\\\\":\\\\\\\"|\\\\\\\",\\\\\\\"taxonomy\\\\\\\":\\\\\\\"|\\\\\\\",\\\\\\\"analogy\\\\\\\":\\\\\\\"|\\\\\\\",\\\\\\\"misconception\\\\\\\":\\\\\\\"|\\\\\\\"}\",\"skill_graph_source_repo\":\"https://github.com/jacob-balslev/skill-graph\",\"skill_graph_protocol\":\"Skill Metadata Protocol v5\",\"skill_graph_project\":\"Skill Graph\",\"skill_graph_canonical_skill\":\"skills/constraint-awareness/SKILL.md\"}"
9
+ skill_graph_source_repo: "https://github.com/jacob-balslev/skill-graph"
10
+ skill_graph_protocol: Skill Metadata Protocol v4
11
+ skill_graph_project: Skill Graph
12
+ skill_graph_canonical_skill: skills/constraint-awareness/SKILL.md
13
+ ---
14
+
15
+ # Constraint Awareness
16
+
17
+ ## Coverage
18
+
19
+ Theory-of-Constraints (Goldratt) applied to the cost-structure inversion of AI-assisted software development. Identifies the constraint as the human activity that cannot be delegated to an agent — review, validation, decision-making, learning. Walks the Five Focusing Steps (Identify, Exploit, Subordinate, Elevate, Repeat) and shows how each step maps to a team operating multiple coding agents. Names the four constraint-aware process-design rules: front-load agent work and back-load human judgment; batch constraint touches; present options + recommendation rather than open questions; eliminate false dependencies on the constraint by promoting recurring questions into rules or skills. Catalogs five anti-patterns (unnecessary questions, spawning without consent, summaries nobody reads, over-engineering with maintenance debt, circular discussions). Specifies attention-audit ratios for measuring constraint health. Explains the constraint-shift model — that the bottleneck moves over time as agent autonomy improves, from review bandwidth → strategic decisions → user research → market timing — and that the focusing steps must restart when it does.
20
+
21
+ ## Philosophy
22
+
23
+ Most AI-coding systems fail not because the agents are incapable, but because they waste the one resource that cannot be scaled: the human operator's attention. Without explicit constraint-awareness, agents treat all tasks as equal-priority, interrupt the operator with questions they could have answered themselves, and produce verbose output nobody reads. Theory of Constraints turns this into a tractable engineering problem rather than a vague productivity complaint: identify the constraint, route work around it, invest only in changes that genuinely move it.
24
+
25
+ The single sharpest insight TOC offers an AI-coding team is the _cost-structure inversion_. Pre-AI, code production was the dominant cost — every feature took hours of typing, every test took hours of writing. Post-AI, code production is nearly free; an agent can produce ten thousand lines in minutes. The bottleneck has moved entirely to the activities that cannot be delegated: reviewing whether the agent's output is correct, deciding what to build next, validating that the system matches user reality, and learning from outcomes. Every team optimization should now be evaluated through one question: does this reduce demand on the constraint?
26
+
27
+ ## 1. Goldratt's Theory of Constraints
28
+
29
+ Eliyahu Goldratt's TOC states that every system has exactly one constraint that limits its throughput. Improving anything other than the constraint does not improve the system. Overloading the constraint degrades the entire system.
30
+
31
+ ### The Five Focusing Steps
32
+
33
+ 1. **IDENTIFY the constraint.** What single resource currently limits system throughput? In an AI-coding team, this is almost always a class of _human_ activity, not a class of _agent_ activity.
34
+ 2. **EXPLOIT the constraint.** Maximize the value of every minute of constraint-time. Never waste it on work the constraint shouldn't be touching.
35
+ 3. **SUBORDINATE everything else to the constraint.** Non-constraint resources (agents, automation, tooling) exist to _serve_ the constraint, not the other way around. Their schedules, outputs, and APIs should be shaped around the constraint's needs.
36
+ 4. **ELEVATE the constraint.** Invest in increasing the constraint's capacity — better tooling, better skills, higher agent autonomy, better pre-review.
37
+ 5. **REPEAT.** When the constraint moves (and it will), restart from step 1. The subordination rules change.
38
+
39
+ ### The map for an AI-coding team
40
+
41
+ | Focusing step | Applied to a team operating coding agents |
42
+ | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
43
+ | **IDENTIFY** | The constraint is the senior reviewer's / architect's / product-owner's attention — review bandwidth, validation, decision-making, learning. |
44
+ | **EXPLOIT** | Only surface decisions to the constraint that genuinely require human judgment. Every constraint-minute should produce maximum value. |
45
+ | **SUBORDINATE** | Agents do all work that does not require the constraint: building, testing, auditing, documenting, researching, comparing options, drafting recommendations. |
46
+ | **ELEVATE** | Better tools, better agent autonomy, better skill / context content, better memory across sessions = less demand on the constraint per unit of throughput. |
47
+ | **REPEAT** | Once agent autonomy is high enough, the constraint may move from review to strategic decisions, then to user research, then to market timing. The processes that served the old constraint may be irrelevant to the new one. |
48
+
49
+ ## 2. The Constraint Shift — When Building Becomes Cheap
50
+
51
+ The AI revolution changes the cost structure of software development. Understanding this inversion is essential for correct prioritization.
52
+
53
+ ### Pre-AI cost structure
54
+
55
+ ```
56
+ Code production [=============================] HIGH (hours per feature)
57
+ Code review [=================] MEDIUM (~30 min per PR)
58
+ Testing [=================] MEDIUM (hours per test suite)
59
+ Documentation [===========] MEDIUM (often skipped)
60
+ Decision-making [=======] LOW (fast, drawn from experience)
61
+ ```
62
+
63
+ ### Post-AI cost structure
64
+
65
+ ```
66
+ Code production [===] CHEAP (minutes per feature; agent-generated)
67
+ Code review [=================] MEDIUM (still requires human judgment)
68
+ Testing [========] LOW (agents write tests; CI runs them)
69
+ Documentation [===] CHEAP (agents write docs alongside code)
70
+ Decision-making [=============================] HIGH (more decisions, faster, higher stakes)
71
+ ```
72
+
73
+ The inversion: code production was the bottleneck; now it is nearly free. The bottleneck moved to the human activities that cannot be delegated — review, validation, deciding, learning.
74
+
75
+ ### Implications for prioritization
76
+
77
+ | Activity | Cost | Who does it | Constraint impact |
78
+ | --------------------------------- | -------------- | ------------------------------------- | ------------------------------ |
79
+ | Writing code | Nearly free | Agents | None |
80
+ | Writing tests | Nearly free | Agents | None |
81
+ | Writing docs | Nearly free | Agents | None |
82
+ | Codebase audits | Nearly free | Agents | None |
83
+ | Research & comparison | Cheap | Agents draft; human reads conclusions | Low |
84
+ | Design decisions | Expensive | Human (agents prepare options) | HIGH |
85
+ | Bug triage and prioritization | Expensive | Human | HIGH |
86
+ | Code review | Medium | Agents pre-review; human spot-checks | MEDIUM (reduced by pre-review) |
87
+ | User research / market validation | Very expensive | Human only | VERY HIGH |
88
+
89
+ ## 3. The Constraint Lens — One Question for Every Decision
90
+
91
+ Every proposed process, tool, and workflow should be evaluated with one question:
92
+
93
+ > Does this reduce demand on the constraint?
94
+
95
+ ### Decision framework
96
+
97
+ ```
98
+ Proposed change / process / tool
99
+
100
+
101
+ Does it reduce decisions the constraint must make?
102
+
103
+ YES → Subordinates to the constraint. APPROVE.
104
+
105
+ NO
106
+
107
+ Does it improve the *quality* of decisions presented to the constraint?
108
+
109
+ YES → Exploits the constraint (more value per attention-minute). APPROVE.
110
+
111
+ NO
112
+
113
+ Does it create *new* demands on the constraint?
114
+
115
+ YES → REJECT or REDESIGN. It overloads the constraint.
116
+
117
+ NO
118
+
119
+ Does it improve a non-constraint resource (agent speed, CI time, lint pass-rate)?
120
+
121
+ YES → Low priority. Only do if free. It will not move throughput.
122
+
123
+ NO → No value. Do not build.
124
+ ```
125
+
126
+ The first three branches are the test that matters. A change that does not reduce demand on the constraint, does not improve decision quality, and does not introduce new demands is by definition optimizing a non-constraint — and per TOC, optimizing a non-constraint does not improve the system.
127
+
128
+ ## 4. Constraint-Aware Process Design
129
+
130
+ When designing any new process, workflow, or tool, apply these four rules:
131
+
132
+ ### 4.1 Front-load agent work; back-load human judgment
133
+
134
+ ```
135
+ BAD: human decides → agent builds → human reviews → agent fixes → human reviews
136
+ GOOD: agent researches → agent builds → agent tests → agent pre-reviews → human spot-checks
137
+ ```
138
+
139
+ The bad pattern touches the constraint three times. The good pattern touches it once.
140
+
141
+ ### 4.2 Batch constraint touches
142
+
143
+ Instead of interrupting the constraint with each decision:
144
+
145
+ ```
146
+ BAD: agent asks question 1 → human answers → agent asks question 2 → human answers → ...
147
+ GOOD: agent collects all questions → presents them in one batch → human answers all at once
148
+ ```
149
+
150
+ Context-switching is expensive for the constraint. Batching decisions reduces switching cost dramatically.
151
+
152
+ ### 4.3 Present options + recommendation, not open questions
153
+
154
+ ```
155
+ BAD: "How should we handle the edge case where the upstream API returns null for the tracking field?"
156
+ GOOD: "Upstream null tracking — three options:
157
+ A) Retry in 6h. Covers ~80% of cases (the upstream is usually catching up).
158
+ B) Mark as manual-check. Zero false positives but increases human queue.
159
+ C) Fall back to a secondary tracking source. Works for ~60% of orders.
160
+ Recommendation: A. Approve?"
161
+ ```
162
+
163
+ The bad pattern requires the constraint to _generate_ the solution. The good pattern requires only a yes/no judgment.
164
+
165
+ ### 4.4 Eliminate false dependencies on the constraint
166
+
167
+ Some tasks that _seem_ to require the constraint actually do not:
168
+
169
+ | Looks like it needs human approval | Actually | Promote to |
170
+ | ----------------------------------------------- | ----------------------------------------- | ------------------------------------------------ |
171
+ | "Should I fix this lint error?" | Always yes | Rule / agent default |
172
+ | "This test is failing — should I investigate?" | Always yes | Rule / agent default |
173
+ | "Should I update the docs for this change?" | Always yes | Rule / agent default |
174
+ | "Is this the right pattern for error handling?" | If a documented pattern exists, follow it | Skill content; only ask when genuinely ambiguous |
175
+ | "Should I report this bug somewhere?" | Always yes | Rule / agent default |
176
+
177
+ If the answer is _always the same_, it should live in a rule or skill, not in a question to the constraint.
178
+
179
+ ## 5. Anti-Patterns That Waste the Constraint
180
+
181
+ ### 5.1 Unnecessary questions
182
+
183
+ Agents asking questions they could answer from already-loaded context. Every question consumes constraint bandwidth.
184
+
185
+ **Fix:** better skill content, better rules, higher agent autonomy within defined guardrails. Promote recurring questions to skills until they stop recurring.
186
+
187
+ ### 5.2 Spawning without consent
188
+
189
+ Spawning agents, tabs, or processes without an explicit user signal. Forces context-switching and creates an interruption — overloading the constraint.
190
+
191
+ **Rule:** never spawn without an explicit signal from the constraint, and always make the spawned process visible (not background, not silent).
192
+
193
+ ### 5.3 Summaries nobody reads
194
+
195
+ Producing verbose summaries at the end of every response. If the diff is readable, the summary is waste.
196
+
197
+ **Rule:** terse responses. The diff is the summary. Only elaborate when the change is non-obvious from the diff alone.
198
+
199
+ ### 5.4 Over-engineering that creates maintenance debt
200
+
201
+ Building sophisticated abstractions that require ongoing constraint-attention to maintain. Every abstraction layer is a future demand on the constraint.
202
+
203
+ **Test:** "Will this abstraction save more constraint-time over its lifetime than it costs to maintain?" If no, keep it simple. The simplest design that passes the constraint lens wins.
204
+
205
+ ### 5.5 Circular discussions
206
+
207
+ Multi-agent debates that produce no actionable output. Re-litigating settled decisions because the prior decision was not durably recorded.
208
+
209
+ **Fix:** check decision records / memory before re-debating. If a decision was already made, execute it; do not reopen it without new information.
210
+
211
+ ## 6. Measuring Constraint Health
212
+
213
+ ### 6.1 Attention audit
214
+
215
+ Periodically review where constraint-attention actually went. Healthy and unhealthy ranges:
216
+
217
+ | Category | Healthy share | Unhealthy signal |
218
+ | ----------------------------------- | ------------- | ------------------------------------------------------ |
219
+ | Reviewing agent output | 30–40% | > 50% means agents need more autonomy |
220
+ | Making design / product decisions | 20–30% | < 10% means agents are making decisions they shouldn't |
221
+ | Debugging agent failures | 5–10% | > 20% means skill or context content is incomplete |
222
+ | Answering agent questions | 5–10% | > 15% means rules / skills are incomplete |
223
+ | Administrative overhead | < 10% | > 20% means processes need automation |
224
+ | Learning / user research / strategy | 15–25% | < 10% means the constraint is consumed by operations |
225
+
226
+ ### 6.2 Constraint throughput
227
+
228
+ Measure tasks completed per unit of constraint-time:
229
+
230
+ ```
231
+ constraint efficiency = tasks completed / constraint-hours spent
232
+ ```
233
+
234
+ This number should increase over time as agents become more autonomous and skills become more complete. A flat or declining trend is a signal that the elevation work has stalled.
235
+
236
+ ### 6.3 Leading indicators
237
+
238
+ | Indicator | Measures | Healthy target |
239
+ | ----------------------------------- | ------------------------------------------------------- | -------------- |
240
+ | Agent autonomous-completion rate | % of tasks agents finish without asking | > 80% |
241
+ | Skill / context-injection precision | % of injected context that was actually relevant | > 80% |
242
+ | Rework rate | % of agent work needing human correction | < 15% |
243
+ | Decision batch size | Average number of decisions per constraint interruption | > 5 |
244
+
245
+ ## 7. When the Constraint Moves
246
+
247
+ The constraint is not permanently fixed. As agent autonomy improves, the bottleneck shifts:
248
+
249
+ | Current constraint | What elevates it | New constraint |
250
+ | ---------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
251
+ | Review bandwidth | Better agent pre-review, automated quality gates, tripwire safety | Strategic decision bandwidth |
252
+ | Strategic decision bandwidth | Multi-model decision-support, better research agents | User research (cannot automate talking to actual users) |
253
+ | User research | AI-assisted user research, synthetic personas, automated interview analysis | Market timing / GTM execution |
254
+ | Market timing / GTM | Capital, distribution partners | A _resource_ constraint (capital, headcount), not a _throughput_ constraint |
255
+
256
+ When the constraint moves, the Five Focusing Steps restart from step 1. The processes that served the old constraint may now be irrelevant or actively counterproductive. Subordination targets change. The team's _job_ changes.
257
+
258
+ ## Verification
259
+
260
+ - [ ] The current system constraint has been explicitly identified, named, and agreed on
261
+ - [ ] Every proposed process, tool, or workflow change has been evaluated against the constraint decision framework before being adopted
262
+ - [ ] Agent-autonomous tasks are scheduled first; constraint-touching tasks are batched into a small number of structured surfaces (review, decision)
263
+ - [ ] When agents present a decision to the constraint, they present options + recommendation, not an open question
264
+ - [ ] Recurring questions have been promoted to rules or skills until they stop recurring
265
+ - [ ] Attention-audit ratios are within the healthy bands; outliers have a known cause and an active elevation action
266
+ - [ ] The team has named what would cause the constraint to _move_ and what the next constraint is likely to be
267
+
268
+ ## Do NOT Use When
269
+
270
+ | Use instead | When |
271
+ | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
272
+ | A task-sizing skill | Estimating effort tier or fast-track-vs-full-protocol for a single task |
273
+ | A prioritization-framework skill (RICE / WSJF / ICE) | Scoring a backlog of initiatives against each other |
274
+ | A model-routing / `agents` skill | Deciding which AI model gets a specific task |
275
+ | `agent-engineering` | Designing the production-reliability layer (orchestration, error budgets, observability) |
276
+ | `ai-native-development` | Reasoning about the conceptual model (Software 3.0, autonomy slider, vibe vs agentic) — that's the frame; constraint-awareness is the prioritization lens within it |
277
+ | `tool-call-strategy` | Choosing the right tool, batching, or sequencing for a single agent action |
278
+ | `code-review` | Reviewing an actual piece of agent-generated code |
279
+
280
+ ## Key Sources
281
+
282
+ - Goldratt, E. M., & Cox, J. (1984). *The Goal: A Process of Ongoing Improvement*. North River Press. The original business-novel introduction of the Theory of Constraints and the Five Focusing Steps. The plant-floor parable formalizes the throughput / inventory / operating-expense triple.
283
+ - Goldratt, E. M. (1990). *Theory of Constraints*. North River Press. The non-fiction follow-up; canonical statement of the focusing-steps protocol, Drum-Buffer-Rope scheduling, and the Thinking Processes (Current Reality Tree, Evaporating Cloud, Future Reality Tree).
284
+ - Goldratt, E. M. (1997). *Critical Chain*. North River Press. Application of constraint logic to project scheduling; buffer management as a substitute for per-task safety padding.
285
+ - Cox, J. F., & Schleier, J. G. (Eds.). (2010). *Theory of Constraints Handbook*. McGraw-Hill. Comprehensive reference; covers Throughput Accounting, the Thinking Processes, application domains beyond manufacturing.
286
+ - Womack, J. P., & Jones, D. T. (1996). *Lean Thinking*. Simon & Schuster. The complementary Lean discipline; useful for understanding the composition rule between Lean (waste reduction across the stream) and TOC (constraint-first prioritization).
287
+ - Reinertsen, D. G. (2009). *The Principles of Product Development Flow*. Celeritas. Flow-based product development; queueing theory and WIP constraints connect Theory of Constraints to knowledge-work systems beyond manufacturing.
@@ -0,0 +1,209 @@
1
+ ---
2
+ name: content-monitor
3
+ description: "Use when building or operating multi-source intelligence pipelines across video, GitHub, Reddit, curated lists, search, and RSS feeds. Covers source adapters, discovery/transcription/summarization/evaluation phases, deduplication, schedules, model-stage choice, and actionable brief generation. Do NOT use for SEO keyword research (use `keywords`) or competitive product analysis (use `user-research`)."
4
+ license: MIT
5
+ compatibility: "Markdown, Git, agent-skill runtimes"
6
+ allowed-tools: Read Grep Bash
7
+ metadata:
8
+ metadata: "{\"schema_version\":6,\"version\":\"1.0.0\",\"type\":\"capability\",\"category\":\"agent\",\"domain\":\"agent/ops\",\"scope\":\"portable\",\"owner\":\"skill-graph-maintainer\",\"freshness\":\"2026-03-28\",\"drift_check\":\"{\\\\\\\"last_verified\\\\\\\":\\\\\\\"2026-03-28\\\\\\\"}\",\"eval_artifacts\":\"planned\",\"eval_state\":\"unverified\",\"routing_eval\":\"absent\",\"stability\":\"experimental\",\"keywords\":\"[\\\\\\\"content monitor\\\\\\\",\\\\\\\"github trending\\\\\\\",\\\\\\\"blog monitor\\\\\\\",\\\\\\\"intelligence brief\\\\\\\",\\\\\\\"youtube monitor\\\\\\\",\\\\\\\"awesome list\\\\\\\",\\\\\\\"trend tracking\\\\\\\",\\\\\\\"content pipeline\\\\\\\",\\\\\\\"content-monitor\\\\\\\",\\\\\\\"rss feed\\\\\\\",\\\\\\\"content discovery\\\\\\\",\\\\\\\"hacker news\\\\\\\",\\\\\\\"changelog tracking\\\\\\\",\\\\\\\"arxiv papers\\\\\\\",\\\\\\\"podcast monitor\\\\\\\",\\\\\\\"release tracking\\\\\\\"]\",\"triggers\":\"[\\\\\\\"content-monitor-skill\\\\\\\",\\\\\\\"research-mode\\\\\\\"]\",\"relations\":\"{\\\\\\\"boundary\\\\\\\":[\\\\\\\"keywords\\\\\\\",\\\\\\\"seo-strategy\\\\\\\"],\\\\\\\"verify_with\\\\\\\":[\\\\\\\"evaluation\\\\\\\"]}\",\"portability\":\"{\\\\\\\"readiness\\\\\\\":\\\\\\\"scripted\\\\\\\",\\\\\\\"targets\\\\\\\":[\\\\\\\"skill-md\\\\\\\"]}\",\"lifecycle\":\"{\\\\\\\"stale_after_days\\\\\\\":90,\\\\\\\"review_cadence\\\\\\\":\\\\\\\"quarterly\\\\\\\"}\",\"skill_graph_source_repo\":\"https://github.com/jacob-balslev/skill-graph\",\"skill_graph_protocol\":\"Skill Metadata Protocol v5\",\"skill_graph_project\":\"Skill Graph\",\"skill_graph_canonical_skill\":\"skills/content-monitor/SKILL.md\"}"
9
+ skill_graph_source_repo: "https://github.com/jacob-balslev/skill-graph"
10
+ skill_graph_protocol: Skill Metadata Protocol v4
11
+ skill_graph_project: Skill Graph
12
+ skill_graph_canonical_skill: skills/content-monitor/SKILL.md
13
+ ---
14
+ # Content Monitor
15
+
16
+ ## Domain Context
17
+
18
+ **What is this skill?** This skill provides expertise for a multi-source intelligence pipeline covering YouTube channels, GitHub trending/topic/search feeds, Reddit subreddits, awesome-lists, Google Search, and RSS/Atom feeds (including Hacker News, changelogs, blogs, arXiv, and podcasts). Covers source adapter patterns, unified evaluation pipeline, deduplication, scheduling cadence, and actionable intelligence brief generation. Use when adding new content sources to the pipeline, configuring monitoring schedules, understanding the discover/transcribe/summarize/evaluate phases, extending or debugging the discovery pipeline, or deciding which model to use at each pipeline stage. Do NOT use for SEO keyword research — use the keywords skill. Do NOT use for competitive product analysis — use user-research-synthesis.
19
+
20
+ ## Key Files
21
+
22
+ | File | Purpose |
23
+ |---|---|
24
+ | `scripts/content-monitor/sources.json` | Multi-source configuration for the live monitor pipeline. |
25
+ | `scripts/content-monitor/channels.json` | Legacy YouTube-channel configuration still referenced by the pipeline. |
26
+ | `.content-monitor/seen-items.json` | Persistent deduplication state. |
27
+ | `.content-monitor/backlog-evaluate-status.json` | Tracks historical scoring progress for batch backlog evaluation sweeps. |
28
+ | `.content-monitor/resume-status.json` | Catch-up sweep progress used by resume flows. |
29
+ ## Workflow
30
+
31
+ Use the ordered phases, checklists, and guardrails in the sections below as the canonical workflow for this skill. When multiple subsections describe steps, follow them in the order presented.
32
+
33
+ ## Coverage
34
+
35
+ The multi-source intelligence pipeline that tracks AI coding, e-commerce tooling, and agent infrastructure trends. Covers the live source groups configured in `scripts/content-monitor/sources.json` and `scripts/content-monitor/channels.json`, the 4-phase pipeline (Discover, Extract, Summarize, Evaluate), the MiniMax/GPT-5.4 model split, source adapter contract, deduplication via `seen-items.json` (at `.content-monitor/`), scheduling cadence per source type, evaluation rubric dimensions, and the daily digest output format. Source code lives at `scripts/content-monitor/`. State files live at `.content-monitor/` (the Development repo root).
36
+
37
+ ## Philosophy
38
+
39
+ Staying current on AI tooling, agent patterns, and e-commerce integrations is essential for a system that competes on engineering velocity. Without this pipeline, the team would manually scan dozens of sources and miss emerging patterns that could inform skill creation, architecture decisions, or competitive positioning. The pipeline automates discovery and extraction (cheap) and reserves expensive model reasoning for evaluation (scarce), following the same constraint-awareness principle that governs the rest of the system.
40
+
41
+ ### Location Precision
42
+
43
+ State persistence is critical for this pipeline. Always refer to:
44
+ - **Source code and configuration:** `scripts/content-monitor/` (discover-*.js, evaluate.js, sources.json, run.js)
45
+ - **State and results:** `.content-monitor/` at the Development root (seen-items.json, digests, logs, reports)
46
+
47
+ This separation keeps persistent state separate from executable code, ensuring deduplication survives code updates.
48
+
49
+ ## 1. When This Skill Applies
50
+
51
+ | Use this skill for... | Use something else for... |
52
+ |---|---|
53
+ | Adding a new YouTube channel, GitHub topic, Reddit subreddit, or search source | SEO keyword research (use `keywords` skill) |
54
+ | Understanding why an extraction or summary is missing | Competitive product teardowns (use `user-research-synthesis`) |
55
+ | Configuring evaluation context or scoring dimensions | General web scraping patterns (use `backend` skill) |
56
+ | Diagnosing deduplication behaviour across source types | Monitoring application uptime or error rates |
57
+ | Scheduling or adjusting cadence for a source type | |
58
+
59
+ ---
60
+
61
+ ## 1.5. Important: State vs. Source Code Locations
62
+
63
+ This is a critical distinction that prevents bugs:
64
+
65
+ - **Source code** (scripts, adapters, runners): `scripts/content-monitor/`
66
+ - **State files** (persistent data, results): `.content-monitor/` at the Development repo root
67
+
68
+ The `seen-items.json` file used for deduplication MUST be read from and written to `.content-monitor/seen-items.json`, not `scripts/content-monitor/`. This is the single source of truth for what has already been processed.
69
+
70
+ ---
71
+
72
+ ## 2. Pipeline Architecture
73
+
74
+ The pipeline has 4 sequential phases. Each phase is independently runnable via `--discover-only`, `--skip-evaluate`, etc.
75
+
76
+ | Phase | Description | Primary tool |
77
+ |---|---|---|
78
+ | **Discover** | Source-specific adapters fetch new items (YouTube RSS, GitHub API, Reddit JSON) and write them to the state | Adapter scripts — see section 3.5 registry |
79
+ | **Extract** | Extract text content from each discovered item (YouTube: `yt-dlp` transcripts, GitHub: README extraction, Reddit: post body + comments) | `yt-dlp`, GitHub REST API, Reddit API |
80
+ | **Summarize** | MiniMax M2.5K produces structured JSON summaries from the extracted text | OpenRouter free tier (MiniMax M2.5K) |
81
+ | **Evaluate** | GPT-5.4 or Gemini-Flash scores summaries against the developer context and generates the actionable digest | GPT-5.4 via Copilot or Gemini-Flash |
82
+
83
+ ### Why this model split matters
84
+
85
+ MiniMax M2.5K is free (200 req/day via OpenRouter) and handles the volume of extraction-to-summary work without cost. GPT-5.4/Gemini is reserved for the evaluation step where quality is the bottleneck — scoring relevance and generating insights that the developer will act on.
86
+
87
+ ### Summary JSON schema (produced by Summarize phase)
88
+
89
+ Each summary contains:
90
+
91
+ ```
92
+ keyFindings — array of strings, concrete observations
93
+ toolsMentioned — array of tool names
94
+ techniquesMentioned — array of technique names
95
+ actionableInsights — array of strings, recommended actions
96
+ topicTags — array of strings for deduplication grouping
97
+ oneLineSummary — string, max 120 chars
98
+ estimatedRelevance — integer 1-10, self-assessed by model
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 3. Source Types
104
+
105
+ | Type | Count | Example | Discovery Method | Frequency | Cost |
106
+ |---|---|---|---|---|---|
107
+ | YouTube Channel | 19 | IndyDevDan, Anthropic, Fireship | RSS feed XML | Daily | Free |
108
+ | GitHub Trending/Topic | 14 | github.com/trending, topics/ai-agents | HTML scrape + REST API | Daily/Weekly | Free |
109
+ | Reddit Subreddit | 12 | r/ClaudeCode, r/AI_Agents, r/vibecoding | JSON API | Daily | Free |
110
+ | Awesome List | 17 | awesome-claude-code, awesome-mcp-servers | README diff | Weekly | Free |
111
+ | Google Search | 6 | "multi-agent orchestration" | Custom Search API | Daily | Free (100/day) |
112
+ | Hacker News | 5 | Claude Code, MCP, AI agents | hnrss.org RSS | Daily | Free |
113
+ | Changelog | 11 | Claude Code releases, Vercel, Shopify | GitHub Atom + vendor RSS | On release | Free |
114
+ | Blog/Newsletter | 9 | Simon Willison, Latent Space, DEV.to | RSS/Atom | Daily | Free |
115
+ | arXiv Papers | 3 | cs.MA, cs.AI, cs.SE | RSS | Daily (weekdays) | Free |
116
+ | Podcast | 3 | Latent Space, Practical AI, SE Daily | RSS | Weekly | Free |
117
+ | Skills.sh | 1 | Global sitemap | XML sitemap | Weekly | Free |
118
+
119
+ ---
120
+
121
+ ## 3.5. Adapter Registry
122
+
123
+ Maps each source type (from section 3) to the adapter file that handles it. There is no 1-to-1 mapping — `discover-rss.js` consolidates five source types.
124
+
125
+ | Source Type | Adapter File | Notes |
126
+ |---|---|---|
127
+ | YouTube Channel | `discover.js` | **Primary** — legacy YouTube-specific adapter using RSS feed (`https://www.youtube.com/feeds/videos.xml?channel_id=...`) plus `yt-dlp` transcript backfill |
128
+ | YouTube Channel | `discover-rss.js` | **Also handles YouTube** via the same RSS endpoint; prefer `discover.js` for YouTube-specific features |
129
+ | GitHub Trending/Topic | `discover-github.js` | Scrapes `github.com/trending` HTML and calls GitHub REST API for topic pages |
130
+ | Reddit Subreddit | `discover-reddit.js` | Calls `https://www.reddit.com/r/<subreddit>.json` (unauthenticated) |
131
+ | Awesome List | `discover-awesome.js` | Fetches README.md, diffs against cached version, extracts new entries |
132
+ | Google Search | `discover-google.js` | Calls Google Custom Search API (100 req/day free tier) |
133
+ | Hacker News | `discover-rss.js` | Uses `hnrss.org` RSS feeds |
134
+ | Changelog | `discover-rss.js` | GitHub Atom feeds (`/releases.atom`) + vendor RSS |
135
+ | Blog/Newsletter | `discover-rss.js` | Standard RSS/Atom feeds |
136
+ | arXiv Papers | `discover-rss.js` | arXiv RSS export by category (e.g. `cs.MA`, `cs.AI`) |
137
+ | Podcast | `discover-rss.js` | Standard podcast RSS feeds |
138
+ | Skills.sh | `discover-skillssh.js` | Fetches and diffs the XML sitemap |
139
+
140
+ ### Key architecture note
141
+
142
+ `discover-rss.js` is the generic RSS handler. It handles Hacker News, changelogs, blogs, arXiv, podcasts, and can also ingest YouTube RSS — but it lacks YouTube-specific features (transcript extraction, channel metadata). When adding a new RSS-based source, route it through `discover-rss.js`. When adding a YouTube channel, use `discover.js`.
143
+
144
+ **There is no `discover-youtube.js`.** Do not create one — YouTube RSS is already handled by `discover.js` with transcript support.
145
+
146
+ ---
147
+
148
+ ## 4. State Files
149
+
150
+ All state files live in `.content-monitor/` (the Development repo root directory), NOT in `scripts/content-monitor/`.
151
+
152
+ | File | Location | Purpose |
153
+ |---|---|---|
154
+ | `seen-items.json` | `.content-monitor/seen-items.json` | Inventory of all processed items by source ID. Single source of truth for deduplication. |
155
+ | `backlog-evaluate-status.json` | `.content-monitor/backlog-evaluate-status.json` | Tracks historical scoring progress for batch backlog evaluation sweeps. |
156
+ | `resume-status.json` | `.content-monitor/resume-status.json` | Catch-up sweep progress — used when reconciling artifacts. |
157
+ | `YYYY-MM-DD.md` | `.content-monitor/digests/YYYY-MM-DD.md` | Daily output file — contains all scored items above the threshold. |
158
+
159
+ ---
160
+
161
+ ## 5. Configuration
162
+
163
+ Config file: `scripts/content-monitor/sources.json` (multi-source) and `channels.json` (YouTube legacy).
164
+
165
+ | Setting | Type | Description |
166
+ |---|---|---|
167
+ | `maxAgeHours` | number | Maximum age (hours) of items to process in each run |
168
+ | `summarizeModel` | string | Model for Summarize phase (default: `minimax`) |
169
+ | `evaluateModel` | string | Model for Evaluate phase (default: `gpt-5.4`) |
170
+ | `maxTranscriptTokens` | number | Hard cap on text length sent to summarizer |
171
+ | `evaluationContext` | string | Free-text description of the developer's focus — shapes all relevance scoring |
172
+
173
+ ---
174
+
175
+ ## 6. Extending the Pipeline
176
+
177
+ Before creating a new adapter, check **section 3.5 (Adapter Registry)**. If the new source is RSS/Atom-based (blogs, changelogs, podcasts, arXiv, Hacker News), route it through the existing `discover-rss.js` — no new file needed. Only create a new `discover-<type>.js` for source types with fundamentally different discovery mechanics (HTML scraping, vendor APIs, sitemaps).
178
+
179
+ To add a new source type that needs a new adapter:
180
+
181
+ 1. Create a new adapter file (e.g., `discover-reddit.js`) in the `scripts/content-monitor/` directory implementing the standard adapter interface: `fetchNew(config) → Array<{ id, url, title, rawText }>`
182
+ 2. Register the new source in `sources.json`
183
+ 3. Implement text extraction in `extract-text.js` or `transcribe.js`
184
+ 4. Update section 3.5 of this skill to add the new adapter to the registry
185
+ 5. Test with `--discover-only`
186
+ 6. Run a full pass and verify output in `seen-items.json`
187
+
188
+ **Adapter contract:** The adapter must return a stable `id` per item. This is what `seen-items.json` keys on for deduplication.
189
+
190
+ ## Verification
191
+
192
+ After modifying the content monitor pipeline, verify:
193
+ - [ ] New sources have a stable `id` field for deduplication (test with `--discover-only`)
194
+ - [ ] `seen-items.json` correctly records discovered items without duplicates
195
+ - [ ] Frequency matches the source's update cadence (daily for YouTube/Reddit/blogs, weekly for GitHub topics/awesome-lists)
196
+ - [ ] Summarize phase produces all required JSON fields (`keyFindings`, `toolsMentioned`, `actionableInsights`, etc.)
197
+ - [ ] Evaluate phase generates a scored digest entry in `.content-monitor/digests/YYYY-MM-DD.md`
198
+ - [ ] No API rate limits are exceeded (GitHub: 60 req/hr unauthenticated, Google: 100/day)
199
+ - [ ] Cost remains zero -- MiniMax for summarization, free APIs for discovery
200
+
201
+ ## Do NOT Use When
202
+
203
+ | Instead of this skill | Use | Why |
204
+ |---|---|---|
205
+ | Doing SEO keyword research or clustering | `keywords` | Keywords skill owns keyword strategy; content-monitor is about trend discovery |
206
+ | Building competitive product teardowns | `user-research-synthesis` | Competitive analysis requires structured frameworks, not pipeline mechanics |
207
+ | Scraping arbitrary web pages for data | `backend` | General web scraping is a backend concern, not content monitoring |
208
+ | Monitoring application uptime or error rates | `error-tracking` or `agent-observability` | Those skills own runtime health; content-monitor tracks external intelligence |
209
+ | Analyzing content for SEO optimization | `seo-strategy` | SEO strategy owns page optimization; this skill discovers external trends |