agent-devkit 0.2.0 → 0.3.1

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 (177) hide show
  1. package/README.md +66 -13
  2. package/bin/agent.mjs +133 -7
  3. package/package.json +1 -1
  4. package/runtime/README.md +205 -13
  5. package/runtime/agent +31 -5
  6. package/runtime/agents/README.md +18 -0
  7. package/runtime/agents/contribution-reviewer/AGENTS.md +8 -0
  8. package/runtime/agents/contribution-reviewer/README.md +8 -0
  9. package/runtime/agents/contribution-reviewer/agent.yaml +40 -0
  10. package/runtime/agents/contribution-reviewer/capabilities/plan-contribution-pr/capability.yaml +27 -0
  11. package/runtime/agents/contribution-reviewer/capabilities/plan-contribution-pr/decision-rules.md +5 -0
  12. package/runtime/agents/contribution-reviewer/capabilities/plan-contribution-pr/workflow.md +6 -0
  13. package/runtime/agents/contribution-reviewer/capabilities/review-contribution/capability.yaml +25 -0
  14. package/runtime/agents/contribution-reviewer/capabilities/review-contribution/decision-rules.md +5 -0
  15. package/runtime/agents/contribution-reviewer/capabilities/review-contribution/workflow.md +5 -0
  16. package/runtime/agents/contribution-reviewer/capabilities/validate-local-contribution/capability.yaml +26 -0
  17. package/runtime/agents/contribution-reviewer/capabilities/validate-local-contribution/decision-rules.md +5 -0
  18. package/runtime/agents/contribution-reviewer/capabilities/validate-local-contribution/workflow.md +6 -0
  19. package/runtime/agents/contribution-reviewer/infra/README.md +6 -0
  20. package/runtime/agents/contribution-reviewer/knowledge/context.md +8 -0
  21. package/runtime/agents/contribution-reviewer/knowledge/system.md +8 -0
  22. package/runtime/agents/contribution-reviewer/templates/README.md +3 -0
  23. package/runtime/agents/knowledge-author/AGENTS.md +7 -0
  24. package/runtime/agents/knowledge-author/README.md +7 -0
  25. package/runtime/agents/knowledge-author/agent.yaml +37 -0
  26. package/runtime/agents/knowledge-author/capabilities/create-knowledge-snapshot/capability.yaml +30 -0
  27. package/runtime/agents/knowledge-author/capabilities/create-knowledge-snapshot/decision-rules.md +6 -0
  28. package/runtime/agents/knowledge-author/capabilities/create-knowledge-snapshot/workflow.md +7 -0
  29. package/runtime/agents/knowledge-author/infra/.gitkeep +1 -0
  30. package/runtime/agents/knowledge-author/knowledge/context.md +4 -0
  31. package/runtime/agents/knowledge-author/knowledge/system.md +4 -0
  32. package/runtime/agents/knowledge-author/templates/.gitkeep +1 -0
  33. package/runtime/agents/knowledge-curator/AGENTS.md +7 -0
  34. package/runtime/agents/knowledge-curator/README.md +6 -0
  35. package/runtime/agents/knowledge-curator/agent.yaml +37 -0
  36. package/runtime/agents/knowledge-curator/capabilities/curate-knowledge-base/capability.yaml +29 -0
  37. package/runtime/agents/knowledge-curator/capabilities/curate-knowledge-base/decision-rules.md +6 -0
  38. package/runtime/agents/knowledge-curator/capabilities/curate-knowledge-base/workflow.md +7 -0
  39. package/runtime/agents/knowledge-curator/infra/.gitkeep +1 -0
  40. package/runtime/agents/knowledge-curator/knowledge/context.md +4 -0
  41. package/runtime/agents/knowledge-curator/knowledge/system.md +4 -0
  42. package/runtime/agents/knowledge-curator/templates/.gitkeep +1 -0
  43. package/runtime/agents/knowledge-infra-builder/AGENTS.md +8 -0
  44. package/runtime/agents/knowledge-infra-builder/README.md +8 -0
  45. package/runtime/agents/knowledge-infra-builder/agent.yaml +38 -0
  46. package/runtime/agents/knowledge-infra-builder/capabilities/create-knowledge-base/capability.yaml +30 -0
  47. package/runtime/agents/knowledge-infra-builder/capabilities/create-knowledge-base/decision-rules.md +6 -0
  48. package/runtime/agents/knowledge-infra-builder/capabilities/create-knowledge-base/workflow.md +7 -0
  49. package/runtime/agents/knowledge-infra-builder/infra/.gitkeep +1 -0
  50. package/runtime/agents/knowledge-infra-builder/knowledge/context.md +4 -0
  51. package/runtime/agents/knowledge-infra-builder/knowledge/system.md +4 -0
  52. package/runtime/agents/knowledge-infra-builder/templates/.gitkeep +1 -0
  53. package/runtime/agents/knowledge-owner/AGENTS.md +7 -0
  54. package/runtime/agents/knowledge-owner/README.md +6 -0
  55. package/runtime/agents/knowledge-owner/agent.yaml +37 -0
  56. package/runtime/agents/knowledge-owner/capabilities/publish-knowledge-snapshot/capability.yaml +28 -0
  57. package/runtime/agents/knowledge-owner/capabilities/publish-knowledge-snapshot/decision-rules.md +6 -0
  58. package/runtime/agents/knowledge-owner/capabilities/publish-knowledge-snapshot/workflow.md +7 -0
  59. package/runtime/agents/knowledge-owner/infra/.gitkeep +1 -0
  60. package/runtime/agents/knowledge-owner/knowledge/context.md +4 -0
  61. package/runtime/agents/knowledge-owner/knowledge/system.md +4 -0
  62. package/runtime/agents/knowledge-owner/templates/.gitkeep +1 -0
  63. package/runtime/agents/knowledge-reviewer/AGENTS.md +7 -0
  64. package/runtime/agents/knowledge-reviewer/README.md +7 -0
  65. package/runtime/agents/knowledge-reviewer/agent.yaml +36 -0
  66. package/runtime/agents/knowledge-reviewer/capabilities/review-knowledge-snapshot/capability.yaml +26 -0
  67. package/runtime/agents/knowledge-reviewer/capabilities/review-knowledge-snapshot/decision-rules.md +6 -0
  68. package/runtime/agents/knowledge-reviewer/capabilities/review-knowledge-snapshot/workflow.md +7 -0
  69. package/runtime/agents/knowledge-reviewer/infra/.gitkeep +1 -0
  70. package/runtime/agents/knowledge-reviewer/knowledge/context.md +4 -0
  71. package/runtime/agents/knowledge-reviewer/knowledge/system.md +4 -0
  72. package/runtime/agents/knowledge-reviewer/templates/.gitkeep +1 -0
  73. package/runtime/agents/local-memory-manager/AGENTS.md +5 -0
  74. package/runtime/agents/local-memory-manager/README.md +7 -0
  75. package/runtime/agents/local-memory-manager/agent.yaml +38 -0
  76. package/runtime/agents/local-memory-manager/capabilities/curate-local-memory/capability.yaml +19 -0
  77. package/runtime/agents/local-memory-manager/capabilities/curate-local-memory/decision-rules.md +5 -0
  78. package/runtime/agents/local-memory-manager/capabilities/curate-local-memory/workflow.md +6 -0
  79. package/runtime/agents/local-memory-manager/capabilities/inspect-local-memory/capability.yaml +19 -0
  80. package/runtime/agents/local-memory-manager/capabilities/inspect-local-memory/decision-rules.md +5 -0
  81. package/runtime/agents/local-memory-manager/capabilities/inspect-local-memory/workflow.md +5 -0
  82. package/runtime/agents/local-memory-manager/infra/.gitkeep +1 -0
  83. package/runtime/agents/local-memory-manager/knowledge/context.md +4 -0
  84. package/runtime/agents/local-memory-manager/knowledge/system.md +4 -0
  85. package/runtime/agents/local-memory-manager/templates/.gitkeep +1 -0
  86. package/runtime/agents/memory-sync-manager/AGENTS.md +7 -0
  87. package/runtime/agents/memory-sync-manager/README.md +7 -0
  88. package/runtime/agents/memory-sync-manager/agent.yaml +37 -0
  89. package/runtime/agents/memory-sync-manager/capabilities/plan-memory-backup/capability.yaml +29 -0
  90. package/runtime/agents/memory-sync-manager/capabilities/plan-memory-backup/decision-rules.md +6 -0
  91. package/runtime/agents/memory-sync-manager/capabilities/plan-memory-backup/workflow.md +7 -0
  92. package/runtime/agents/memory-sync-manager/infra/.gitkeep +1 -0
  93. package/runtime/agents/memory-sync-manager/knowledge/context.md +4 -0
  94. package/runtime/agents/memory-sync-manager/knowledge/system.md +4 -0
  95. package/runtime/agents/memory-sync-manager/templates/.gitkeep +1 -0
  96. package/runtime/agents/shared-memory-curator/AGENTS.md +5 -0
  97. package/runtime/agents/shared-memory-curator/README.md +6 -0
  98. package/runtime/agents/shared-memory-curator/agent.yaml +38 -0
  99. package/runtime/agents/shared-memory-curator/capabilities/create-shared-memory/capability.yaml +19 -0
  100. package/runtime/agents/shared-memory-curator/capabilities/create-shared-memory/decision-rules.md +5 -0
  101. package/runtime/agents/shared-memory-curator/capabilities/create-shared-memory/workflow.md +5 -0
  102. package/runtime/agents/shared-memory-curator/capabilities/publish-shared-submission/capability.yaml +19 -0
  103. package/runtime/agents/shared-memory-curator/capabilities/publish-shared-submission/decision-rules.md +5 -0
  104. package/runtime/agents/shared-memory-curator/capabilities/publish-shared-submission/workflow.md +5 -0
  105. package/runtime/agents/shared-memory-curator/capabilities/review-shared-submission/capability.yaml +19 -0
  106. package/runtime/agents/shared-memory-curator/capabilities/review-shared-submission/decision-rules.md +5 -0
  107. package/runtime/agents/shared-memory-curator/capabilities/review-shared-submission/workflow.md +5 -0
  108. package/runtime/agents/shared-memory-curator/infra/.gitkeep +1 -0
  109. package/runtime/agents/shared-memory-curator/knowledge/context.md +5 -0
  110. package/runtime/agents/shared-memory-curator/knowledge/system.md +4 -0
  111. package/runtime/agents/shared-memory-curator/templates/.gitkeep +1 -0
  112. package/runtime/cli/README.md +47 -8
  113. package/runtime/cli/aikit/__init__.py +1 -1
  114. package/runtime/cli/aikit/agent_registry.py +4 -2
  115. package/runtime/cli/aikit/agentic_commands.py +158 -0
  116. package/runtime/cli/aikit/app_home.py +2 -0
  117. package/runtime/cli/aikit/audit.py +16 -6
  118. package/runtime/cli/aikit/catalog.py +278 -8
  119. package/runtime/cli/aikit/cli_dispatch.py +489 -13
  120. package/runtime/cli/aikit/cli_parser.py +146 -8
  121. package/runtime/cli/aikit/contribution.py +132 -2
  122. package/runtime/cli/aikit/doctor_runtime.py +85 -0
  123. package/runtime/cli/aikit/embedded_mini_brain.py +351 -0
  124. package/runtime/cli/aikit/eval.py +356 -10
  125. package/runtime/cli/aikit/human_output.py +310 -4
  126. package/runtime/cli/aikit/interactive_wizard.py +146 -0
  127. package/runtime/cli/aikit/knowledge_base.py +1067 -0
  128. package/runtime/cli/aikit/llm.py +40 -6
  129. package/runtime/cli/aikit/local_artifacts.py +444 -0
  130. package/runtime/cli/aikit/local_llm.py +176 -0
  131. package/runtime/cli/aikit/local_llm_operator.py +15 -5
  132. package/runtime/cli/aikit/main.py +15 -0
  133. package/runtime/cli/aikit/mcp_manifest.py +798 -0
  134. package/runtime/cli/aikit/mcp_tools.py +643 -5
  135. package/runtime/cli/aikit/memory.py +405 -0
  136. package/runtime/cli/aikit/mini_brain.py +56 -25
  137. package/runtime/cli/aikit/model_router.py +42 -9
  138. package/runtime/cli/aikit/natural_prompt_runtime.py +194 -2
  139. package/runtime/cli/aikit/ollama.py +64 -15
  140. package/runtime/cli/aikit/onboarding.py +551 -0
  141. package/runtime/cli/aikit/output.py +67 -0
  142. package/runtime/cli/aikit/prompt_injection.py +12 -1
  143. package/runtime/cli/aikit/review_gate.py +14 -2
  144. package/runtime/cli/aikit/roadmap_cli.py +1 -1
  145. package/runtime/cli/aikit/secrets.py +3 -2
  146. package/runtime/cli/aikit/setup_wizard_payload.py +3 -0
  147. package/runtime/cli/aikit/shared_memory.py +415 -0
  148. package/runtime/cli/aikit/specialist_readiness.py +152 -0
  149. package/runtime/cli/aikit/tasks.py +104 -1
  150. package/runtime/cli/aikit/team.py +380 -0
  151. package/runtime/cli/aikit/toolchain.py +7 -2
  152. package/runtime/cli/aikit/workflows.py +115 -14
  153. package/runtime/models/qwen2.5-0.5b-instruct/manifest.json +30 -0
  154. package/runtime/providers/knowledge-github.yaml +40 -0
  155. package/runtime/providers/knowledge-google-drive.yaml +32 -0
  156. package/runtime/providers/knowledge-local.yaml +26 -0
  157. package/runtime/providers/knowledge-notion.yaml +32 -0
  158. package/runtime/providers/knowledge-obsidian.yaml +24 -0
  159. package/runtime/providers/knowledge-onedrive.yaml +36 -0
  160. package/runtime/providers/knowledge-s3.yaml +45 -0
  161. package/runtime/providers/knowledge-sharepoint.yaml +39 -0
  162. package/runtime/providers/knowledge-supabase.yaml +43 -0
  163. package/runtime/providers/knowledge-vector.yaml +39 -0
  164. package/runtime/requirements.txt +6 -0
  165. package/runtime/scripts/docker-cli-qa.sh +453 -0
  166. package/runtime/scripts/release-catalog-snapshot.json +55 -4
  167. package/runtime/scripts/release-gate.py +54 -13
  168. package/runtime/tooling/toolchain.yaml +92 -0
  169. package/runtime/vendor/skills/napkin/napkin.md +21 -7
  170. package/runtime/workflows/azure-card-analysis/README.md +3 -0
  171. package/runtime/workflows/azure-card-analysis/workflow.yaml +30 -0
  172. package/runtime/workflows/daily-pr-review/README.md +3 -0
  173. package/runtime/workflows/daily-pr-review/workflow.yaml +31 -0
  174. package/runtime/workflows/incident-analysis/README.md +3 -0
  175. package/runtime/workflows/incident-analysis/workflow.yaml +33 -0
  176. package/runtime/workflows/release-prep/README.md +3 -0
  177. package/runtime/workflows/release-prep/workflow.yaml +30 -0
@@ -6,6 +6,7 @@ from __future__ import annotations
6
6
  import argparse
7
7
  import json
8
8
  import os
9
+ import shutil
9
10
  import subprocess
10
11
  import sys
11
12
  from pathlib import Path
@@ -22,6 +23,8 @@ CATALOG_SNAPSHOT = ROOT / "scripts" / "release-catalog-snapshot.json"
22
23
  CLAUDE_SKILL = ROOT / "plugins" / "claude-skill-ai-devkit" / "ai-devkit"
23
24
  CODEX_HOME = Path(os.environ.get("CODEX_HOME", Path.home() / ".codex"))
24
25
  SKILL_VALIDATOR = CODEX_HOME / "skills" / ".system" / "skill-creator" / "scripts" / "quick_validate.py"
26
+ RELEASE_GATE_HOME = ROOT / "tmp" / "release-gate-home"
27
+ COMMAND_TIMEOUT_SECONDS = 900
25
28
 
26
29
 
27
30
  def main() -> int:
@@ -39,18 +42,19 @@ def main() -> int:
39
42
 
40
43
 
41
44
  def run_gate(*, quick: bool = False) -> dict[str, Any]:
45
+ prepare_release_gate_home()
42
46
  checks = [
43
47
  check_command("agent version", [sys.executable, str(AGENT), "--version"], validate_agent_version),
44
48
  check_json("repo strict validation", [sys.executable, str(VALIDATE_REPO), "--strict", "--json"], validate_repo),
45
49
  catalog_snapshot_check(),
46
50
  check_json("mvp readiness", [sys.executable, str(MVP_READINESS), "--json"], validate_mvp_readiness),
47
- check_json("v0.2.0 runtime evals", [sys.executable, str(AGENT), "eval", "run", "all", "--json"], validate_v020_evals),
51
+ check_json("v0.2.1 runtime evals", [sys.executable, str(AGENT), "eval", "run", "all", "--json"], validate_v021_evals),
48
52
  skill_validation_check(),
49
53
  ]
50
54
  if quick:
51
55
  checks.append(skipped_check("full unittest suite", "skipped by --quick"))
52
56
  else:
53
- checks.append(check_command("full unittest suite", unittest_command(), validate_unittest))
57
+ checks.append(check_command("full unittest suite", unittest_command(), validate_unittest, use_release_home=False))
54
58
 
55
59
  errors = [check["message"] for check in checks if check["status"] == "failed"]
56
60
  return {
@@ -62,6 +66,11 @@ def run_gate(*, quick: bool = False) -> dict[str, Any]:
62
66
  }
63
67
 
64
68
 
69
+ def prepare_release_gate_home() -> None:
70
+ shutil.rmtree(RELEASE_GATE_HOME, ignore_errors=True)
71
+ RELEASE_GATE_HOME.mkdir(parents=True, exist_ok=True)
72
+
73
+
65
74
  def skill_validation_check() -> dict[str, Any]:
66
75
  if not SKILL_VALIDATOR.exists():
67
76
  return skipped_check("claude skill validation", f"skill validator not found at {SKILL_VALIDATOR}")
@@ -97,8 +106,8 @@ def unittest_path_sort_key(path: Path) -> tuple[int, str]:
97
106
  return (0 if first == "tests" else 1, str(relative))
98
107
 
99
108
 
100
- def check_json(name: str, command: list[str], validator) -> dict[str, Any]:
101
- result = run(command)
109
+ def check_json(name: str, command: list[str], validator, *, use_release_home: bool = True) -> dict[str, Any]:
110
+ result = run(command, use_release_home=use_release_home)
102
111
  if result.returncode != 0:
103
112
  return failed_check(name, f"returncode {result.returncode}", result)
104
113
  try:
@@ -113,8 +122,8 @@ def check_json(name: str, command: list[str], validator) -> dict[str, Any]:
113
122
  return check
114
123
 
115
124
 
116
- def check_command(name: str, command: list[str], validator) -> dict[str, Any]:
117
- result = run(command)
125
+ def check_command(name: str, command: list[str], validator, *, use_release_home: bool = True) -> dict[str, Any]:
126
+ result = run(command, use_release_home=use_release_home)
118
127
  if result.returncode != 0:
119
128
  return failed_check(name, f"returncode {result.returncode}", result)
120
129
  message = validator(result)
@@ -123,18 +132,30 @@ def check_command(name: str, command: list[str], validator) -> dict[str, Any]:
123
132
  return ok_check(name, result)
124
133
 
125
134
 
126
- def run(command: list[str]) -> subprocess.CompletedProcess[str]:
135
+ def run(command: list[str], *, use_release_home: bool = True) -> subprocess.CompletedProcess[str]:
136
+ env = command_env(use_release_home=use_release_home)
127
137
  return subprocess.run(
128
138
  command,
129
139
  cwd=ROOT,
130
140
  check=False,
141
+ env=env,
131
142
  text=True,
132
143
  stdout=subprocess.PIPE,
133
144
  stderr=subprocess.PIPE,
134
- timeout=360,
145
+ timeout=COMMAND_TIMEOUT_SECONDS,
135
146
  )
136
147
 
137
148
 
149
+ def command_env(*, use_release_home: bool) -> dict[str, str]:
150
+ env = os.environ.copy()
151
+ if use_release_home:
152
+ env["AGENT_DEVKIT_HOME"] = str(RELEASE_GATE_HOME)
153
+ return env
154
+ for name in ("AGENT_DEVKIT_HOME", "AI_DEVKIT_CONFIG_HOME", "AIKIT_CONFIG_HOME"):
155
+ env.pop(name, None)
156
+ return env
157
+
158
+
138
159
  def validate_agent_version(result: subprocess.CompletedProcess[str]) -> str | None:
139
160
  if not result.stdout.startswith("agent "):
140
161
  return "agent --version did not report the agent command"
@@ -260,14 +281,34 @@ def validate_mvp_readiness(payload: dict[str, Any]) -> str | None:
260
281
  return None
261
282
 
262
283
 
263
- def validate_v020_evals(payload: dict[str, Any]) -> str | None:
284
+ def validate_v021_evals(payload: dict[str, Any]) -> str | None:
264
285
  if payload.get("kind") != "eval-run" or payload.get("suite") != "all":
265
- return "v0.2.0 eval command returned an unexpected payload"
286
+ return "v0.2.1 eval command returned an unexpected payload"
266
287
  if payload.get("status") != "passed":
267
- return "v0.2.0 runtime evals did not pass"
288
+ return "v0.2.1 runtime evals did not pass"
268
289
  checks = payload.get("checks") or []
269
- if not isinstance(checks, list) or len(checks) < 5:
270
- return "v0.2.0 runtime evals returned too few suites"
290
+ required = {
291
+ "routing",
292
+ "catalog",
293
+ "wizard",
294
+ "source_config",
295
+ "identity_enforcement",
296
+ "review_gate",
297
+ "model_router",
298
+ "agentic_plan",
299
+ "mcp",
300
+ "workflow_contract",
301
+ "extension_contract",
302
+ "contribution_contract",
303
+ "team_contract",
304
+ "knowledge_contract",
305
+ "secret_refs",
306
+ "prompt-injection",
307
+ }
308
+ suites = {item.get("suite") for item in checks if isinstance(item, dict)}
309
+ missing = sorted(required - suites)
310
+ if missing:
311
+ return f"v0.2.1 runtime evals missing suites: {', '.join(missing)}"
271
312
  return None
272
313
 
273
314
 
@@ -0,0 +1,92 @@
1
+ version: 1
2
+ tools:
3
+ claude-code:
4
+ label: Claude Code CLI
5
+ command: claude
6
+ required: false
7
+ install:
8
+ darwin: npm install -g @anthropic-ai/claude-code
9
+ linux: npm install -g @anthropic-ai/claude-code
10
+ windows: npm install -g @anthropic-ai/claude-code
11
+ notes: Uses official Claude Code authentication.
12
+ codex-cli:
13
+ label: Codex CLI
14
+ command: codex
15
+ required: false
16
+ install:
17
+ darwin: npm install -g @openai/codex
18
+ linux: npm install -g @openai/codex
19
+ windows: npm install -g @openai/codex
20
+ notes: Uses official Codex CLI authentication.
21
+ gh-cli:
22
+ label: GitHub CLI
23
+ command: gh
24
+ required: false
25
+ install:
26
+ darwin: brew install gh
27
+ linux: See https://github.com/cli/cli/blob/trunk/docs/install_linux.md
28
+ windows: winget install --id GitHub.cli
29
+ notes: Required for GitHub PR reviewer workflows.
30
+ playwright:
31
+ label: Playwright
32
+ command: playwright
33
+ required: false
34
+ install:
35
+ darwin: python3 -m pip install playwright && python3 -m playwright install chromium
36
+ linux: python3 -m pip install playwright && python3 -m playwright install chromium
37
+ windows: python -m pip install playwright && python -m playwright install chromium
38
+ notes: Optional; used by Playwright automation builder for real browser checks.
39
+ aws-cli:
40
+ label: AWS CLI
41
+ command: aws
42
+ required: false
43
+ install:
44
+ darwin: brew install awscli
45
+ linux: See https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
46
+ windows: winget install --id Amazon.AWSCLI
47
+ notes: Required for AWS agents using real AWS accounts.
48
+ figma-mcp:
49
+ label: Figma MCP
50
+ command: figma
51
+ required: false
52
+ install:
53
+ darwin: Configure the official Figma MCP integration in your host app.
54
+ linux: Configure the official Figma MCP integration in your host app.
55
+ windows: Configure the official Figma MCP integration in your host app.
56
+ notes: Optional; usually installed through Codex/Claude host integrations.
57
+ ollama:
58
+ label: Ollama
59
+ command: ollama
60
+ required: false
61
+ install:
62
+ darwin: brew install ollama
63
+ linux: curl -fsSL https://ollama.com/install.sh | sh
64
+ windows: winget install Ollama.Ollama
65
+ notes: Local LLM runtime used for operational subagent work.
66
+ node:
67
+ label: Node.js
68
+ command: node
69
+ required: true
70
+ install:
71
+ darwin: brew install node
72
+ linux: Use your distro package manager or https://nodejs.org/
73
+ windows: winget install OpenJS.NodeJS.LTS
74
+ notes: Required by several artifact builders and host CLIs.
75
+ python:
76
+ label: Python
77
+ command: python3
78
+ required: true
79
+ install:
80
+ darwin: brew install python
81
+ linux: Use your distro package manager.
82
+ windows: winget install Python.Python.3.12
83
+ notes: Required by the Agent DevKit CLI runtime.
84
+ git:
85
+ label: Git
86
+ command: git
87
+ required: true
88
+ install:
89
+ darwin: xcode-select --install
90
+ linux: Use your distro package manager.
91
+ windows: winget install Git.Git
92
+ notes: Required for repository-aware workflows.
@@ -7,11 +7,21 @@
7
7
  - Each item includes date + "Do instead".
8
8
 
9
9
  ## Execution & Validation (Highest Priority)
10
- 1. **[2026-06-20] Validate agent capabilities through `agent`**
10
+ 1. **[2026-06-29] Nao paralelizar build e verify do pacote npm**
11
+ Do instead: rode `npm run package:build && npm run package:verify` sequencialmente; o build remove/recria `tooling/agent-devkit/runtime` e quebra verifies simultaneos.
12
+ 2. **[2026-06-29] QA destrutivo de instalacao roda em Docker**
13
+ Do instead: use `npm run docker:qa` para instalar tarball em container limpo, validar fluxos CLI criticos, desinstalar e remover `.agent-devkit` sem tocar no host.
14
+ 3. **[2026-06-29] Docker sem espaco causa falsos erros de apt/GPG**
15
+ Do instead: se `npm run docker:qa` falhar com assinatura invalida no `apt`, verificar `docker system df` e liberar artefatos regeneraveis antes de diagnosticar o CLI.
16
+ 4. **[2026-06-29] Release gate completo precisa de timeout folgado**
17
+ Do instead: manter timeout do `scripts/release-gate.py` acima da duracao real da suite completa; a suite isolada ja passa de 300s e o gate adiciona overhead.
18
+ 5. **[2026-06-29] Isolar home do Agent DevKit em testes**
19
+ Do instead: use `AGENT_DEVKIT_HOME=$(mktemp -d)` ou `AI_DEVKIT_CONFIG_HOME=$(mktemp -d)`; `AI_DEVKIT_HOME` nao e lido pelo runtime e pode gravar em `~/.agent-devkit`.
20
+ 6. **[2026-06-20] Validate agent capabilities through `agent`**
11
21
  Do instead: when testing a capability, execute it through `agent run <agent> <capability>` before using lower-level integration CLIs.
12
- 2. **[2026-06-21] Excel artifact-tool Node scripts may keep handles alive**
22
+ 7. **[2026-06-21] Excel artifact-tool Node scripts may keep handles alive**
13
23
  Do instead: guard `run_node_script()` calls with timeouts and make successful JS runners call `process.exit(0)` after awaited saves.
14
- 3. **[2026-06-21] `unittest discover` does not find repo tests**
24
+ 8. **[2026-06-21] `unittest discover` does not find repo tests**
15
25
  Do instead: run `python3 -m unittest $(rg --files -g 'test*.py' -g '!vendor/**')` for the project suite.
16
26
 
17
27
  ## Shell & Command Reliability
@@ -44,10 +54,14 @@
44
54
 
45
55
  ## User Directives
46
56
  1. **[2026-06-28] Rodar testes focados durante patches**
47
- Do instead: para melhorias intermediarias, executar apenas testes necessarios para validar o patch; reservar suite completa para o fechamento do conjunto de melhorias.
48
- 2. **[2026-06-22] Implement agentic specs individually**
57
+ Do instead: para melhorias intermediarias, executar apenas testes necessarios para validar o patch e no maximo `scripts/release-gate.py --quick`; reservar suite completa e gate completo apenas para fechamento de fase/versao.
58
+ 2. **[2026-06-29] Manter `.agent-devkit` como home local**
59
+ Do instead: persistir instalacao, memoria local, configs e artefatos locais em `.agent-devkit` quando o runtime ja usar esse caminho; nao migrar para `.ai-devkit`.
60
+ 3. **[2026-06-29] Comando canonico permanece `agent`**
61
+ Do instead: manter `agent` como comando default e validar que renomeacao/persona altera o nome publico do agente, nao o executavel canonico.
62
+ 4. **[2026-06-22] Implement agentic specs individually**
49
63
  Do instead: process one `docs/agentic/*_plan.md` spec at a time with agent-specific analysis, tests, implementation, and review; do not use broad multi-agent waves or mechanical generation.
50
- 3. **[2026-06-22] Use Agent DevKit agents for work**
64
+ 5. **[2026-06-22] Use Agent DevKit agents for work**
51
65
  Do instead: route every current and future activity through the relevant Agent DevKit agent/capability before doing direct ad-hoc work.
52
- 4. **[2026-06-20] Keep generated docs out of final project versioning**
66
+ 6. **[2026-06-20] Keep generated docs out of final project versioning**
53
67
  Do instead: treat `docs/` as local development/generated artifact space and keep it ignored.
@@ -0,0 +1,3 @@
1
+ # Azure Card Analysis
2
+
3
+ Fluxo manual para analisar cards Azure DevOps sem escrita externa por padrao.
@@ -0,0 +1,30 @@
1
+ id: azure-card-analysis
2
+ title: Azure card analysis
3
+ description: Analyze an Azure DevOps card and prepare an operational response plan.
4
+ schedule:
5
+ type: manual
6
+ providers:
7
+ - azure-devops
8
+ permissions:
9
+ mode: report-only
10
+ write_policy: local_config_write
11
+ task:
12
+ title: Azure card analysis
13
+ prompt: Analise o card do Azure DevOps informado e prepare um plano de acao.
14
+ action:
15
+ type: prompt
16
+ prompt: Analise o card do Azure DevOps informado e prepare um plano de acao.
17
+ external_writes: false
18
+ permissions:
19
+ mode: report-only
20
+ notifications:
21
+ - type: desktop
22
+ events:
23
+ - task.completed
24
+ - task.blocked
25
+ outputs:
26
+ - card-analysis
27
+ risks:
28
+ - Requires Azure DevOps source configuration before reading real cards.
29
+ examples:
30
+ - analise o card 7914 do projeto sustentacao no azure
@@ -0,0 +1,3 @@
1
+ # Daily PR Review
2
+
3
+ Instala uma task local para revisar PRs pendentes em modo report-only.
@@ -0,0 +1,31 @@
1
+ id: daily-pr-review
2
+ title: Daily PR review
3
+ description: Create a local scheduled prompt to review pending pull requests.
4
+ schedule:
5
+ type: cron
6
+ cron: "0 9 * * 1-5"
7
+ providers:
8
+ - github
9
+ permissions:
10
+ mode: report-only
11
+ write_policy: local_config_write
12
+ task:
13
+ title: Daily PR review
14
+ prompt: Revise as PRs que aguardam minha revisao hoje.
15
+ action:
16
+ type: prompt
17
+ prompt: Revise as PRs que aguardam minha revisao hoje.
18
+ external_writes: false
19
+ permissions:
20
+ mode: report-only
21
+ notifications:
22
+ - type: desktop
23
+ events:
24
+ - task.completed
25
+ - task.blocked
26
+ outputs:
27
+ - pr-review-summary
28
+ risks:
29
+ - Requires GitHub source/authentication for real PR data.
30
+ examples:
31
+ - revise as prs que recebi hoje
@@ -0,0 +1,3 @@
1
+ # Incident Analysis
2
+
3
+ Fluxo manual para planejar analise de incidente com fontes configuradas.
@@ -0,0 +1,33 @@
1
+ id: incident-analysis
2
+ title: Incident analysis
3
+ description: Plan an incident analysis using available cards, logs and source context.
4
+ schedule:
5
+ type: manual
6
+ providers:
7
+ - azure-devops
8
+ - github
9
+ - elasticsearch
10
+ - aws
11
+ permissions:
12
+ mode: report-only
13
+ write_policy: local_config_write
14
+ task:
15
+ title: Incident analysis
16
+ prompt: Analise o incidente informado usando fontes configuradas e gere um resumo com evidencias.
17
+ action:
18
+ type: prompt
19
+ prompt: Analise o incidente informado usando fontes configuradas e gere um resumo com evidencias.
20
+ external_writes: false
21
+ permissions:
22
+ mode: report-only
23
+ notifications:
24
+ - type: desktop
25
+ events:
26
+ - task.completed
27
+ - task.blocked
28
+ outputs:
29
+ - incident-report
30
+ risks:
31
+ - External logs and tickets may contain sensitive data and must be summarized.
32
+ examples:
33
+ - analise esse incidente
@@ -0,0 +1,3 @@
1
+ # Release Prep
2
+
3
+ Fluxo manual para preparar checklist de release, testes e verificacao de pacote.
@@ -0,0 +1,30 @@
1
+ id: release-prep
2
+ title: Release prep
3
+ description: Prepare a release checklist, focused tests and package verification.
4
+ schedule:
5
+ type: manual
6
+ providers:
7
+ - github
8
+ permissions:
9
+ mode: report-only
10
+ write_policy: local_config_write
11
+ task:
12
+ title: Release prep
13
+ prompt: Prepare o corte de versao com checklist, testes focados e verificacao de pacote.
14
+ action:
15
+ type: prompt
16
+ prompt: Prepare o corte de versao com checklist, testes focados e verificacao de pacote.
17
+ external_writes: false
18
+ permissions:
19
+ mode: report-only
20
+ notifications:
21
+ - type: desktop
22
+ events:
23
+ - task.completed
24
+ - task.blocked
25
+ outputs:
26
+ - release-checklist
27
+ risks:
28
+ - Publishing, tagging and pushing still require explicit confirmation.
29
+ examples:
30
+ - prepare o corte da proxima versao