@gian-tiaga/eda 3.14.0 → 4.0.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 (78) hide show
  1. package/MIGRATION.md +23 -2
  2. package/README.md +131 -223
  3. package/agents/eda-aim-executor/prompt.md +2 -0
  4. package/agents/eda-aim-verifier/prompt.md +2 -0
  5. package/agents/eda-review-api/prompt.md +4 -4
  6. package/agents/eda-review-architecture/prompt.md +4 -4
  7. package/agents/eda-review-business/prompt.md +5 -12
  8. package/agents/eda-review-code-quality/prompt.md +4 -4
  9. package/agents/eda-review-correctness/prompt.md +3 -3
  10. package/agents/eda-review-database/prompt.md +4 -4
  11. package/agents/eda-review-documentation/prompt.md +4 -4
  12. package/agents/eda-review-frontend/prompt.md +4 -4
  13. package/agents/eda-review-infra/agent.json +14 -0
  14. package/agents/eda-review-infra/prompt.md +36 -0
  15. package/agents/eda-review-performance/prompt.md +7 -7
  16. package/agents/eda-review-plan-alignment/prompt.md +4 -4
  17. package/agents/eda-review-previous-reviews/prompt.md +5 -4
  18. package/agents/eda-review-references/prompt.md +4 -4
  19. package/agents/eda-review-rules/prompt.md +4 -4
  20. package/agents/eda-review-security/prompt.md +4 -4
  21. package/agents/eda-review-seo/agent.json +14 -0
  22. package/agents/eda-review-seo/prompt.md +36 -0
  23. package/agents/eda-review-tests/prompt.md +4 -4
  24. package/agents/eda-review-triage/agent.json +14 -0
  25. package/agents/eda-review-triage/prompt.md +38 -0
  26. package/lib/catalog.js +28 -1
  27. package/lib/install.js +221 -590
  28. package/lib/prompts.js +53 -0
  29. package/lib/renderers/codex-agent.js +3 -1
  30. package/lib/renderers/codex-skill.js +21 -1
  31. package/lib/renderers/opencode-skill.js +2 -2
  32. package/package.json +2 -3
  33. package/skills/_shared/done.md +15 -0
  34. package/skills/_shared/questions.md +9 -0
  35. package/skills/eda-aim/SKILL.md +2 -3
  36. package/skills/eda-business/SKILL.md +5 -6
  37. package/skills/eda-commit/SKILL.md +2 -3
  38. package/skills/eda-discover-automations/SKILL.md +6 -7
  39. package/skills/eda-explore/SKILL.md +28 -15
  40. package/skills/eda-fix/SKILL.md +7 -7
  41. package/skills/eda-fix-by-review/SKILL.md +4 -3
  42. package/skills/eda-just-do-it/SKILL.md +4 -4
  43. package/skills/eda-manual-test/SKILL.md +7 -5
  44. package/skills/eda-merge-worktree/SKILL.md +2 -3
  45. package/skills/eda-new-project/SKILL.md +3 -5
  46. package/skills/eda-orhestra/SKILL.md +3 -4
  47. package/skills/eda-plan/SKILL.md +126 -168
  48. package/skills/eda-plan-execute/SKILL.md +72 -92
  49. package/skills/eda-plan-polish/SKILL.md +14 -14
  50. package/skills/eda-plan-review/SKILL.md +25 -10
  51. package/skills/eda-plan-review-fix/SKILL.md +10 -7
  52. package/skills/eda-polish/SKILL.md +9 -6
  53. package/skills/eda-prepare-ai/SKILL.md +35 -15
  54. package/skills/eda-prod-check/SKILL.md +129 -0
  55. package/skills/eda-review/SKILL.md +92 -64
  56. package/skills/eda-review/references/checks/api.md +18 -0
  57. package/skills/eda-review/references/checks/architecture.md +16 -0
  58. package/skills/eda-review/references/checks/business.md +13 -0
  59. package/skills/eda-review/references/checks/code-quality.md +18 -0
  60. package/skills/eda-review/references/checks/correctness.md +19 -0
  61. package/skills/eda-review/references/checks/database.md +17 -0
  62. package/skills/eda-review/references/checks/documentation.md +13 -0
  63. package/skills/eda-review/references/checks/frontend.md +19 -0
  64. package/skills/eda-review/references/checks/infra.md +16 -0
  65. package/skills/eda-review/references/checks/performance.md +21 -0
  66. package/skills/eda-review/references/checks/plan-alignment.md +16 -0
  67. package/skills/eda-review/references/checks/previous-reviews.md +9 -0
  68. package/skills/eda-review/references/checks/references.md +11 -0
  69. package/skills/eda-review/references/checks/rules.md +16 -0
  70. package/skills/eda-review/references/checks/security.md +26 -0
  71. package/skills/eda-review/references/checks/seo.md +16 -0
  72. package/skills/eda-review/references/checks/tests.md +18 -0
  73. package/skills/eda-review/references/defects.md +24 -0
  74. package/skills/eda-review/references/triage.md +23 -0
  75. package/skills/eda-roadmap/SKILL.md +2 -4
  76. package/skills/eda-send-review/SKILL.md +3 -5
  77. package/skills/eda-worktree/SKILL.md +2 -3
  78. package/skills/eda-review/references/review-matrix.md +0 -72
package/lib/catalog.js CHANGED
@@ -46,7 +46,11 @@ export async function listAgents(agentsRoot) {
46
46
  const metadataPath = path.join(sourceDir, 'agent.json');
47
47
  const promptPath = path.join(sourceDir, 'prompt.md');
48
48
  const metadata = await readJson(metadataPath);
49
- const prompt = await fs.readFile(promptPath, 'utf8');
49
+ const prompt = await expandIncludes(
50
+ `Агент ${entry.name}`,
51
+ await fs.readFile(promptPath, 'utf8'),
52
+ path.resolve(agentsRoot, '..')
53
+ );
50
54
  validateAgent(entry.name, metadata, prompt);
51
55
  agents.push({ ...metadata, sourceDir, prompt });
52
56
  }
@@ -54,6 +58,29 @@ export async function listAgents(agentsRoot) {
54
58
  return agents.sort((a, b) => a.name.localeCompare(b.name));
55
59
  }
56
60
 
61
+ // Строка `<!-- include: путь -->` заменяется файлом пакета при установке: общий текст —
62
+ // чек-лист проверки или правило вопросов — живёт в одном месте и попадает во все платформы.
63
+ const INCLUDE_LINE = /^<!-- include: (\S+) -->$/gm;
64
+
65
+ export async function expandIncludes(owner, source, packageRoot) {
66
+ let expanded = source;
67
+ for (const [line, relativePath] of source.matchAll(INCLUDE_LINE)) {
68
+ const includePath = path.resolve(packageRoot, relativePath);
69
+ if (!includePath.startsWith(packageRoot + path.sep)) {
70
+ throw new Error(`${owner}: include вне пакета: ${relativePath}.`);
71
+ }
72
+ let content;
73
+ try {
74
+ content = await fs.readFile(includePath, 'utf8');
75
+ } catch (err) {
76
+ if (err?.code === 'ENOENT') throw new Error(`${owner}: не найден include ${relativePath}.`);
77
+ throw err;
78
+ }
79
+ expanded = expanded.replace(line, () => content.trim());
80
+ }
81
+ return expanded;
82
+ }
83
+
57
84
  function validateSkillConfig(skillName, config) {
58
85
  if (Object.keys(config).length === 0) return;
59
86
  if (config.schemaVersion !== 1) {