ai-developer-skill-os 9.1.2 → 9.3.0

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 (63) hide show
  1. package/.agents/AGENTS.md +139 -42
  2. package/.agents/DEV_PROFILE.md +95 -0
  3. package/.agents/registry/capability-graph.yml +171 -334
  4. package/.agents/registry/graph.json +37 -19
  5. package/.agents/registry/index.yaml +59 -13
  6. package/.agents/registry/skills-index.yml +204 -447
  7. package/.agents/rules/coding.md +23 -0
  8. package/.agents/rules/global.md +44 -30
  9. package/.agents/skills/_template/SKILL.md +2 -377
  10. package/.agents/skills/qk-access-policy/SKILL.md +98 -473
  11. package/.agents/skills/qk-agent-observability/SKILL.md +3 -439
  12. package/.agents/skills/qk-ai-builder/SKILL.md +132 -565
  13. package/.agents/skills/qk-api-consumer/SKILL.md +256 -0
  14. package/.agents/skills/qk-api-consumer/capability.yaml +21 -0
  15. package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +29 -0
  16. package/.agents/skills/qk-api-lifecycle/SKILL.md +133 -456
  17. package/.agents/skills/qk-bug-resolution/SKILL.md +128 -561
  18. package/.agents/skills/qk-code-review/SKILL.md +142 -420
  19. package/.agents/skills/qk-context-loader/SKILL.md +99 -471
  20. package/.agents/skills/qk-data-engineer/SKILL.md +119 -340
  21. package/.agents/skills/qk-data-lifecycle/SKILL.md +89 -488
  22. package/.agents/skills/qk-db-optimizer/SKILL.md +102 -488
  23. package/.agents/skills/qk-design-system-engineering/SKILL.md +76 -461
  24. package/.agents/skills/qk-devops-platform/SKILL.md +77 -463
  25. package/.agents/skills/qk-docs/SKILL.md +88 -494
  26. package/.agents/skills/qk-engineering-standard/SKILL.md +4 -588
  27. package/.agents/skills/qk-fe-api-integration/SKILL.md +343 -343
  28. package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +29 -29
  29. package/.agents/skills/qk-feature-delivery/SKILL.md +137 -445
  30. package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
  31. package/.agents/skills/qk-frontend-architecture/SKILL.md +5 -479
  32. package/.agents/skills/qk-help/evals/scorecard.yaml +13 -13
  33. package/.agents/skills/qk-orchestrator/SKILL.md +63 -502
  34. package/.agents/skills/qk-orchestrator/references/routing-table.md +10 -14
  35. package/.agents/skills/qk-product-specification/SKILL.md +70 -479
  36. package/.agents/skills/qk-production-release/SKILL.md +80 -537
  37. package/.agents/skills/qk-project-audit/SKILL.md +174 -0
  38. package/.agents/skills/qk-project-bootstrap/SKILL.md +243 -471
  39. package/.agents/skills/qk-project-health/SKILL.md +97 -496
  40. package/.agents/skills/qk-project-memory/SKILL.md +76 -21
  41. package/.agents/skills/qk-refactor/SKILL.md +167 -384
  42. package/.agents/skills/qk-security-audit/SKILL.md +141 -463
  43. package/.agents/skills/qk-security-audit/capability.yaml +1 -2
  44. package/.agents/skills/qk-system-evolution/SKILL.md +343 -343
  45. package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +26 -26
  46. package/.agents/skills/qk-test-engineering/SKILL.md +119 -509
  47. package/.agents/skills/qk-ui-audit/SKILL.md +73 -537
  48. package/.agents/skills/qk-ui-builder/SKILL.md +521 -482
  49. package/.agents/skills/qk-ui-system-builder/SKILL.md +68 -514
  50. package/.agents/skills/qk-upgrade/SKILL.md +301 -0
  51. package/.agents/skills/qk-upgrade/capability.yaml +24 -0
  52. package/.agents/skills/qk-upgrade/evals/scorecard.yaml +26 -0
  53. package/.agents/skills/qk-validation-gate/SKILL.md +4 -603
  54. package/.agents/skills/qk-web-quality-gate/SKILL.md +85 -463
  55. package/.agents/workflows/bug-resolution.yml +6 -6
  56. package/.agents/workflows/context-discovery.yml +94 -0
  57. package/.agents/workflows/feature-delivery.yml +8 -4
  58. package/.agents/workflows/refactor.yml +6 -3
  59. package/.agents/workflows/shared/quality-gate.yml +94 -0
  60. package/.agents/workflows/skin-governance.yml +115 -0
  61. package/README.md +152 -67
  62. package/package.json +2 -2
  63. package/tooling/build-registry.js +30 -8
@@ -20,7 +20,8 @@ const GRAPH_JSON = path.join(REGISTRY_DIR, 'graph.json');
20
20
 
21
21
  function parseYamlFile(filePath) {
22
22
  try {
23
- const content = fs.readFileSync(filePath, 'utf8');
23
+ let content = fs.readFileSync(filePath, 'utf8');
24
+ if (content.charCodeAt(0) === 0xFEFF) content = content.slice(1);
24
25
  const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
25
26
  if (match) {
26
27
  return yaml.load(match[1]);
@@ -57,18 +58,24 @@ function buildRegistry() {
57
58
  let meta = null;
58
59
  let fromCapabilityYaml = false;
59
60
 
61
+ let skillMdMeta = null;
62
+ if (fs.existsSync(skillMdPath)) {
63
+ skillMdMeta = parseYamlFile(skillMdPath);
64
+ }
65
+
60
66
  if (fs.existsSync(capYamlPath)) {
61
67
  meta = parseYamlFile(capYamlPath);
62
68
  fromCapabilityYaml = true;
63
- } else if (fs.existsSync(skillMdPath)) {
64
- meta = parseYamlFile(skillMdPath);
69
+ } else if (skillMdMeta) {
70
+ meta = skillMdMeta;
65
71
  }
66
72
 
67
73
  if (!meta) continue;
68
74
 
69
75
  const id = meta.id || meta.name || dir;
70
- const version = meta.version || '8.2.0';
71
- const description = meta.description || '';
76
+ const version = meta.version || skillMdMeta?.version || '8.2.0';
77
+ const status = meta.status || skillMdMeta?.status || 'stable';
78
+ const description = meta.description || skillMdMeta?.description || '';
72
79
 
73
80
  // Normalize tags
74
81
  let tags = meta.tags || meta.keywords || [];
@@ -92,6 +99,7 @@ function buildRegistry() {
92
99
  capabilities[id] = {
93
100
  path: `.agents/skills/${dir}`,
94
101
  version,
102
+ status,
95
103
  tags,
96
104
  dependencies
97
105
  };
@@ -155,6 +163,11 @@ function buildRegistry() {
155
163
  };
156
164
  }
157
165
 
166
+ const allIds = Object.keys(capabilities);
167
+ const activeSkills = allIds.filter(id => capabilities[id].status === 'stable' || capabilities[id].status === 'experimental');
168
+ const archivedSkills = allIds.filter(id => capabilities[id].status === 'archived');
169
+ const relocatedSkills = allIds.filter(id => capabilities[id].status === 'relocated');
170
+
158
171
  const graphJsonData = {
159
172
  schema_version: 1,
160
173
  manifest_version: '8.2',
@@ -162,7 +175,10 @@ function buildRegistry() {
162
175
  nodes: graphNodes,
163
176
  adjacency,
164
177
  stats: {
165
- total_capabilities: Object.keys(capabilities).length,
178
+ total_scanned: allIds.length,
179
+ active: activeSkills.length,
180
+ archived: archivedSkills.length,
181
+ relocated: relocatedSkills.length,
166
182
  has_cycles: hasCycles
167
183
  }
168
184
  };
@@ -173,14 +189,20 @@ function buildRegistry() {
173
189
  schema_version: 1,
174
190
  manifest_version: '8.2',
175
191
  generated_at: new Date().toISOString(),
192
+ stats: {
193
+ total_scanned: allIds.length,
194
+ active: activeSkills.length,
195
+ archived: archivedSkills.length,
196
+ relocated: relocatedSkills.length
197
+ },
176
198
  capabilities
177
199
  }, { indent: 2 });
178
200
 
179
201
  fs.writeFileSync(INDEX_YAML, indexYamlContent, 'utf8');
180
202
  fs.writeFileSync(GRAPH_JSON, JSON.stringify(graphJsonData, null, 2), 'utf8');
181
203
 
182
- console.log(`✅ Generated lightweight registry index at .agents/registry/index.yaml (${Object.keys(capabilities).length} capabilities)`);
183
- console.log(`✅ Generated O(1) adjacency graph at .agents/registry/graph.json (has_cycles: ${hasCycles})`);
204
+ console.log(`✅ Generated lightweight registry index at .agents/registry/index.yaml (${allIds.length} scanned: ${activeSkills.length} active, ${archivedSkills.length} archived, ${relocatedSkills.length} relocated)`);
205
+ console.log(`✅ Generated O(1) adjacency graph at .agents/registry/graph.json (active: ${activeSkills.length}, has_cycles: ${hasCycles})`);
184
206
  }
185
207
 
186
208
  buildRegistry();