@jaimevalasek/aioson 1.18.0 → 1.19.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 (36) hide show
  1. package/package.json +1 -1
  2. package/src/cli.js +111 -7
  3. package/src/constants.js +73 -0
  4. package/src/i18n/messages/en.js +24 -7
  5. package/src/i18n/messages/es.js +18 -1
  6. package/src/i18n/messages/fr.js +18 -1
  7. package/src/i18n/messages/pt-BR.js +24 -7
  8. package/template/.claude/commands/aioson/agent/analyst.md +16 -5
  9. package/template/.claude/commands/aioson/agent/architect.md +17 -5
  10. package/template/.claude/commands/aioson/agent/briefing.md +16 -5
  11. package/template/.claude/commands/aioson/agent/committer.md +16 -5
  12. package/template/.claude/commands/aioson/agent/copywriter.md +16 -5
  13. package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +16 -5
  14. package/template/.claude/commands/aioson/agent/dev.md +18 -5
  15. package/template/.claude/commands/aioson/agent/deyvin.md +16 -5
  16. package/template/.claude/commands/aioson/agent/discover.md +16 -5
  17. package/template/.claude/commands/aioson/agent/discovery-design-doc.md +16 -5
  18. package/template/.claude/commands/aioson/agent/genome.md +16 -5
  19. package/template/.claude/commands/aioson/agent/neo.md +16 -5
  20. package/template/.claude/commands/aioson/agent/orache.md +16 -5
  21. package/template/.claude/commands/aioson/agent/orchestrator.md +21 -5
  22. package/template/.claude/commands/aioson/agent/pair.md +16 -5
  23. package/template/.claude/commands/aioson/agent/pentester.md +22 -5
  24. package/template/.claude/commands/aioson/agent/pm.md +20 -5
  25. package/template/.claude/commands/aioson/agent/product.md +16 -5
  26. package/template/.claude/commands/aioson/agent/profiler-enricher.md +16 -5
  27. package/template/.claude/commands/aioson/agent/profiler-forge.md +16 -5
  28. package/template/.claude/commands/aioson/agent/profiler-researcher.md +16 -5
  29. package/template/.claude/commands/aioson/agent/qa.md +16 -5
  30. package/template/.claude/commands/aioson/agent/setup.md +16 -5
  31. package/template/.claude/commands/aioson/agent/sheldon.md +16 -5
  32. package/template/.claude/commands/aioson/agent/site-forge.md +16 -5
  33. package/template/.claude/commands/aioson/agent/squad.md +16 -5
  34. package/template/.claude/commands/aioson/agent/tester.md +16 -5
  35. package/template/.claude/commands/aioson/agent/ux-ui.md +19 -5
  36. package/template/.claude/commands/aioson/agent/validator.md +17 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaimevalasek/aioson",
3
- "version": "1.18.0",
3
+ "version": "1.19.0",
4
4
  "description": "AI operating framework for hyper-personalized software.",
5
5
  "keywords": [
6
6
  "ai",
package/src/cli.js CHANGED
@@ -229,6 +229,8 @@ const JSON_SUPPORTED_COMMANDS = new Set([
229
229
  'agents',
230
230
  'agent:prompt',
231
231
  'agent-prompt',
232
+ 'agent:help',
233
+ 'agent-help',
232
234
  'agent:invoke',
233
235
  'agent-invoke',
234
236
  'setup:context',
@@ -700,6 +702,10 @@ const JSON_SUPPORTED_COMMANDS = new Set([
700
702
  'system-install'
701
703
  ]);
702
704
 
705
+ const AGENT_HELP_COMMANDS = new Set([
706
+ 'agent:prompt', 'agent-prompt', 'agent:invoke', 'agent-invoke', 'agent:help', 'agent-help'
707
+ ]);
708
+
703
709
  const LEGACY_DASHBOARD_COMMANDS = new Set([
704
710
  'dashboard:init',
705
711
  'dashboard-init',
@@ -748,6 +754,7 @@ function printHelp(t, logger) {
748
754
  logHelpLine(t, logger, 'cli.help_i18n_add');
749
755
  logHelpLine(t, logger, 'cli.help_agents');
750
756
  logHelpLine(t, logger, 'cli.help_agent_prompt');
757
+ logHelpLine(t, logger, 'cli.help_agent_help');
751
758
  logHelpLine(t, logger, 'cli.help_agent_invoke');
752
759
  logHelpLine(t, logger, 'cli.help_context_validate');
753
760
  logHelpLine(t, logger, 'cli.help_context_pack');
@@ -851,6 +858,91 @@ function printHelp(t, logger) {
851
858
  logHelpLine(t, logger, 'cli.help_squad_grant');
852
859
  }
853
860
 
861
+ function printAgentHelp(agentName, jsonMode, logger, t) {
862
+ const { AGENT_DEFINITIONS } = require('./constants');
863
+ const { normalizeAgentName } = require('./agents');
864
+
865
+ if (!agentName) {
866
+ const list = AGENT_DEFINITIONS.map((a) => ({
867
+ id: a.id,
868
+ displayName: a.displayName,
869
+ description: a.description || ''
870
+ }));
871
+ if (jsonMode) {
872
+ writeJson({ ok: true, agents: list });
873
+ return;
874
+ }
875
+ logger.log(`${t('agents.help_available')}\n`);
876
+ for (const a of list) {
877
+ logger.log(` @${a.id.padEnd(24)} ${a.description}`);
878
+ }
879
+ logger.log(`\n${t('agents.help_run_detail')}`);
880
+ return;
881
+ }
882
+
883
+ const normalized = normalizeAgentName(agentName);
884
+ const agent = AGENT_DEFINITIONS.find((a) => {
885
+ if (a.id === normalized) return true;
886
+ return Array.isArray(a.aliases) && a.aliases.includes(normalized);
887
+ });
888
+
889
+ if (!agent) {
890
+ if (jsonMode) {
891
+ writeJson({ ok: false, error: t('agents.help_unknown_agent', { agent: agentName }) });
892
+ } else {
893
+ logger.error(t('agents.help_unknown_agent', { agent: agentName }));
894
+ }
895
+ process.exitCode = 1;
896
+ return;
897
+ }
898
+
899
+ if (jsonMode) {
900
+ writeJson({
901
+ ok: true,
902
+ agent: {
903
+ id: agent.id,
904
+ displayName: agent.displayName,
905
+ description: agent.description || '',
906
+ command: agent.command,
907
+ path: agent.path,
908
+ aliases: agent.aliases || [],
909
+ flags: agent.flags || [],
910
+ dependsOn: agent.dependsOn,
911
+ output: agent.output
912
+ }
913
+ });
914
+ return;
915
+ }
916
+
917
+ const aliasLine = agent.aliases && agent.aliases.length > 0
918
+ ? ` (aliases: ${agent.aliases.join(', ')})`
919
+ : '';
920
+ logger.log(`${agent.command} — ${agent.description || agent.displayName}${aliasLine}\n`);
921
+ logger.log(`${t('agents.help_usage')}`);
922
+ logger.log(` aioson agent:prompt ${agent.id} [path] [options]`);
923
+ logger.log(` /${agent.id} [task description] ${t('agents.help_claude_code')}\n`);
924
+ logger.log(t('agents.help_common_options'));
925
+ logger.log(` --tool=<tool> ${t('agents.help_opt_tool')}`);
926
+ logger.log(` --language=<lang> ${t('agents.help_opt_language')}`);
927
+ logger.log(` --headless ${t('agents.help_opt_headless')}`);
928
+ logger.log(` --output=<path> ${t('agents.help_opt_output')}`);
929
+ logger.log(` --json ${t('agents.help_opt_json')}`);
930
+ if (agent.flags && agent.flags.length > 0) {
931
+ logger.log(`\n${t('agents.help_agent_options', { command: agent.command })}`);
932
+ for (const flag of agent.flags) {
933
+ logger.log(` --${flag.name}=${flag.value.padEnd(Math.max(12 - flag.name.length, 1))} ${flag.description}`);
934
+ }
935
+ }
936
+ if (agent.dependsOn.length > 0) {
937
+ logger.log(`\n${t('agents.help_requires')}`);
938
+ for (const dep of agent.dependsOn) {
939
+ logger.log(` ${dep}`);
940
+ }
941
+ }
942
+ logger.log(`\n${t('agents.help_produces')}\n ${agent.output}`);
943
+ logger.log(`\n${t('agents.help_instruction_file')}\n ${agent.path}`);
944
+ }
945
+
854
946
  function commandSupportsJson(command) {
855
947
  return JSON_SUPPORTED_COMMANDS.has(command);
856
948
  }
@@ -868,19 +960,31 @@ async function main() {
868
960
  const logger = createLogger();
869
961
  const silentLogger = createSilentLogger();
870
962
 
871
- if (command === 'help' || options.help || command === '--help' || command === '-h') {
872
- printHelp(t, logger);
873
- return;
874
- }
875
-
876
963
  if (command === '--version' || command === '-v' || command === 'version' || options.version) {
877
- const result = await runInfo({ args: ['.'], options, logger, t });
964
+ const { getCliVersionSync } = require('./version');
965
+ const version = getCliVersionSync();
878
966
  if (jsonMode) {
879
- writeJson(result);
967
+ writeJson({ ok: true, version });
968
+ } else {
969
+ logger.log(`aioson ${version}`);
880
970
  }
881
971
  return;
882
972
  }
883
973
 
974
+ if (options.help && AGENT_HELP_COMMANDS.has(command)) {
975
+ printAgentHelp(args[0], jsonMode, logger, t);
976
+ return;
977
+ }
978
+ if (command === 'agent:help' || command === 'agent-help') {
979
+ printAgentHelp(args[0], jsonMode, logger, t);
980
+ return;
981
+ }
982
+
983
+ if (command === 'help' || options.help || command === '--help' || command === '-h') {
984
+ printHelp(t, logger);
985
+ return;
986
+ }
987
+
884
988
  if (LEGACY_DASHBOARD_COMMANDS.has(command)) {
885
989
  const message = t('cli.dashboard_moved', { command });
886
990
  if (jsonMode) {
package/src/constants.js CHANGED
@@ -190,6 +190,7 @@ const AGENT_DEFINITIONS = [
190
190
  {
191
191
  id: 'setup',
192
192
  displayName: 'Setup',
193
+ description: 'Project onboarding and context setup',
193
194
  command: '@setup',
194
195
  path: '.aioson/agents/setup.md',
195
196
  dependsOn: [],
@@ -198,6 +199,7 @@ const AGENT_DEFINITIONS = [
198
199
  {
199
200
  id: 'discovery-design-doc',
200
201
  displayName: 'Discovery/Design Doc',
202
+ description: 'Discovery and design doc generation',
201
203
  command: '@discovery-design-doc',
202
204
  path: '.aioson/agents/discovery-design-doc.md',
203
205
  dependsOn: ['.aioson/context/project.context.md'],
@@ -206,6 +208,7 @@ const AGENT_DEFINITIONS = [
206
208
  {
207
209
  id: 'discover',
208
210
  displayName: 'Discover',
211
+ description: 'Semantic knowledge discovery and bootstrap cache generation',
209
212
  command: '@discover',
210
213
  path: '.aioson/agents/discover.md',
211
214
  dependsOn: ['.aioson/context/project.context.md'],
@@ -214,6 +217,7 @@ const AGENT_DEFINITIONS = [
214
217
  {
215
218
  id: 'product',
216
219
  displayName: 'Product',
220
+ description: 'Product vision, PRD and feature scoping',
217
221
  command: '@product',
218
222
  path: '.aioson/agents/product.md',
219
223
  dependsOn: ['.aioson/context/project.context.md'],
@@ -222,6 +226,7 @@ const AGENT_DEFINITIONS = [
222
226
  {
223
227
  id: 'deyvin',
224
228
  displayName: 'Deyvin',
229
+ description: 'Pair programming partner for continuity sessions',
225
230
  command: '@deyvin',
226
231
  path: '.aioson/agents/deyvin.md',
227
232
  aliases: ['pair'],
@@ -231,6 +236,7 @@ const AGENT_DEFINITIONS = [
231
236
  {
232
237
  id: 'analyst',
233
238
  displayName: 'Analyst',
239
+ description: 'Domain discovery and entity mapping (SMALL/MEDIUM)',
234
240
  command: '@analyst',
235
241
  path: '.aioson/agents/analyst.md',
236
242
  dependsOn: ['.aioson/context/project.context.md'],
@@ -239,6 +245,7 @@ const AGENT_DEFINITIONS = [
239
245
  {
240
246
  id: 'architect',
241
247
  displayName: 'Architect',
248
+ description: 'Project structure and technical decisions (SMALL/MEDIUM)',
242
249
  command: '@architect',
243
250
  path: '.aioson/agents/architect.md',
244
251
  dependsOn: [
@@ -250,6 +257,7 @@ const AGENT_DEFINITIONS = [
250
257
  {
251
258
  id: 'ux-ui',
252
259
  displayName: 'UI/UX',
260
+ description: 'UI/UX design system and component spec (SMALL/MEDIUM)',
253
261
  command: '@ux-ui',
254
262
  path: '.aioson/agents/ux-ui.md',
255
263
  dependsOn: [
@@ -263,6 +271,7 @@ const AGENT_DEFINITIONS = [
263
271
  {
264
272
  id: 'pm',
265
273
  displayName: 'PM',
274
+ description: 'Backlog and user stories (MEDIUM only)',
266
275
  command: '@pm',
267
276
  path: '.aioson/agents/pm.md',
268
277
  dependsOn: [
@@ -277,6 +286,7 @@ const AGENT_DEFINITIONS = [
277
286
  {
278
287
  id: 'dev',
279
288
  displayName: 'Dev',
289
+ description: 'Feature implementation (any stack)',
280
290
  command: '@dev',
281
291
  path: '.aioson/agents/dev.md',
282
292
  dependsOn: [
@@ -289,8 +299,14 @@ const AGENT_DEFINITIONS = [
289
299
  {
290
300
  id: 'pentester',
291
301
  displayName: 'Pentester',
302
+ description: 'Adversarial security review and threat-surface mapping',
292
303
  command: '@pentester',
293
304
  path: '.aioson/agents/pentester.md',
305
+ flags: [
306
+ { name: 'mode', value: 'framework_target|app_target', description: 'Target mode for security review' },
307
+ { name: 'feature', value: '<slug>', description: 'Feature slug (required for app_target)' },
308
+ { name: 'scope', value: '<scope>', description: 'Target scope (required for app_target)' }
309
+ ],
294
310
  dependsOn: [
295
311
  '.aioson/context/project.context.md',
296
312
  '.aioson/context/spec-{slug}.md (active feature)'
@@ -300,6 +316,7 @@ const AGENT_DEFINITIONS = [
300
316
  {
301
317
  id: 'qa',
302
318
  displayName: 'QA',
319
+ description: 'Risk-first review and test generation (SMALL/MEDIUM)',
303
320
  command: '@qa',
304
321
  path: '.aioson/agents/qa.md',
305
322
  dependsOn: ['.aioson/context/discovery.md'],
@@ -308,6 +325,7 @@ const AGENT_DEFINITIONS = [
308
325
  {
309
326
  id: 'validator',
310
327
  displayName: 'Validator',
328
+ description: 'Technical validation against success contract',
311
329
  command: '@validator',
312
330
  path: '.aioson/agents/validator.md',
313
331
  dependsOn: [
@@ -319,6 +337,7 @@ const AGENT_DEFINITIONS = [
319
337
  {
320
338
  id: 'tester',
321
339
  displayName: 'Tester',
340
+ description: 'Systematic test engineering for implemented apps (all sizes)',
322
341
  command: '@tester',
323
342
  path: '.aioson/agents/tester.md',
324
343
  dependsOn: ['.aioson/context/project.context.md'],
@@ -327,6 +346,7 @@ const AGENT_DEFINITIONS = [
327
346
  {
328
347
  id: 'orchestrator',
329
348
  displayName: 'Orchestrator',
349
+ description: 'Session protocol and parallel execution (MEDIUM)',
330
350
  command: '@orchestrator',
331
351
  path: '.aioson/agents/orchestrator.md',
332
352
  dependsOn: [
@@ -342,6 +362,7 @@ const AGENT_DEFINITIONS = [
342
362
  {
343
363
  id: 'squad',
344
364
  displayName: 'Squad',
365
+ description: 'Squad assembly and management',
345
366
  command: '@squad',
346
367
  path: '.aioson/agents/squad.md',
347
368
  dependsOn: [],
@@ -351,6 +372,7 @@ const AGENT_DEFINITIONS = [
351
372
  {
352
373
  id: 'orache',
353
374
  displayName: 'Orache',
375
+ description: 'Domain investigation and strategic research',
354
376
  command: '@orache',
355
377
  path: '.aioson/agents/orache.md',
356
378
  dependsOn: [],
@@ -359,6 +381,7 @@ const AGENT_DEFINITIONS = [
359
381
  {
360
382
  id: 'genome',
361
383
  displayName: 'Genome',
384
+ description: 'Domain genome creation and application',
362
385
  command: '@genome',
363
386
  path: '.aioson/agents/genome.md',
364
387
  dependsOn: [],
@@ -367,6 +390,7 @@ const AGENT_DEFINITIONS = [
367
390
  {
368
391
  id: 'design-hybrid-forge',
369
392
  displayName: 'Design Hybrid Forge',
393
+ description: 'Generate hybrid design skill from two visual parents',
370
394
  command: '@design-hybrid-forge',
371
395
  path: '.aioson/agents/design-hybrid-forge.md',
372
396
  dependsOn: ['.aioson/context/project.context.md'],
@@ -375,14 +399,61 @@ const AGENT_DEFINITIONS = [
375
399
  {
376
400
  id: 'site-forge',
377
401
  displayName: 'Site Forge',
402
+ description: 'Clone, extract, and forge sites and design skills from any URL',
378
403
  command: '@site-forge',
379
404
  path: '.aioson/agents/site-forge.md',
380
405
  dependsOn: ['.aioson/context/project.context.md'],
381
406
  output: 'src/components/*.tsx + src/app/page.tsx + docs/research/{hostname}/ + public/images/{hostname}/'
382
407
  },
408
+ {
409
+ id: 'neo',
410
+ displayName: 'Neo',
411
+ description: 'System router: see the full picture, get guided to the right agent',
412
+ command: '@neo',
413
+ path: '.aioson/agents/neo.md',
414
+ dependsOn: ['.aioson/context/project.context.md'],
415
+ output: 'routing decision + agent handoff'
416
+ },
417
+ {
418
+ id: 'sheldon',
419
+ displayName: 'Sheldon',
420
+ description: 'Deep technical analysis and architecture review',
421
+ command: '@sheldon',
422
+ path: '.aioson/agents/sheldon.md',
423
+ dependsOn: ['.aioson/context/project.context.md'],
424
+ output: 'enriched PRD or architecture review'
425
+ },
426
+ {
427
+ id: 'committer',
428
+ displayName: 'Committer',
429
+ description: 'Professional Git commit generation from changes and context',
430
+ command: '@committer',
431
+ path: '.aioson/agents/committer.md',
432
+ dependsOn: [],
433
+ output: 'git commit(s)'
434
+ },
435
+ {
436
+ id: 'copywriter',
437
+ displayName: 'Copywriter',
438
+ description: 'Conversion-focused marketing copy',
439
+ command: '@copywriter',
440
+ path: '.aioson/agents/copywriter.md',
441
+ dependsOn: [],
442
+ output: 'marketing copy + content assets'
443
+ },
444
+ {
445
+ id: 'briefing',
446
+ displayName: 'Briefing',
447
+ description: 'Pre-production briefings and planning',
448
+ command: '@briefing',
449
+ path: '.aioson/agents/briefing.md',
450
+ dependsOn: ['.aioson/context/project.context.md'],
451
+ output: '.aioson/briefings/{slug}/'
452
+ },
383
453
  {
384
454
  id: 'profiler-researcher',
385
455
  displayName: 'Profiler Researcher',
456
+ description: 'Clone profiler: research phase',
386
457
  command: '@profiler-researcher',
387
458
  path: '.aioson/agents/profiler-researcher.md',
388
459
  dependsOn: [],
@@ -391,6 +462,7 @@ const AGENT_DEFINITIONS = [
391
462
  {
392
463
  id: 'profiler-enricher',
393
464
  displayName: 'Profiler Enricher',
465
+ description: 'Clone profiler: enrichment phase',
394
466
  command: '@profiler-enricher',
395
467
  path: '.aioson/agents/profiler-enricher.md',
396
468
  dependsOn: ['.aioson/profiler-reports/{person-slug}/research-report.md'],
@@ -399,6 +471,7 @@ const AGENT_DEFINITIONS = [
399
471
  {
400
472
  id: 'profiler-forge',
401
473
  displayName: 'Profiler Forge',
474
+ description: 'Clone profiler: forge and validate',
402
475
  command: '@profiler-forge',
403
476
  path: '.aioson/agents/profiler-forge.md',
404
477
  dependsOn: ['.aioson/profiler-reports/{person-slug}/enriched-profile.md'],
@@ -19,6 +19,8 @@ module.exports = {
19
19
  help_agents: 'aioson agents [path] [--lang=<bcp47-tag>] [--locale=en]',
20
20
  help_agent_prompt:
21
21
  'aioson agent:prompt <agent> [path] [--tool=codex|claude|gemini|opencode] [--lang=<bcp47-tag>] [--locale=en]',
22
+ help_agent_help:
23
+ 'aioson agent:help [agent] [--json]',
22
24
  help_agent_invoke:
23
25
  'aioson agent:invoke <agent> [path] [--tool=codex|claude|gemini|opencode] [--mode=framework_target|app_target] [--feature=<slug>] [--scope=<area>] [--lang=<bcp47-tag>] [--locale=en]',
24
26
  help_context_validate: 'aioson context:validate [path] [--json] [--locale=en]',
@@ -219,7 +221,7 @@ module.exports = {
219
221
  help_runtime_emit:
220
222
  'aioson runtime:emit [path] --agent=<name> [--type=<event>] [--summary=<text>] [--title=<text>] [--refs=<file[,file2]>] [--plan-step=<id>] [--meta=<json>] [--json] [--locale=en]',
221
223
  help_live_start:
222
- 'aioson live:start [path] --tool=codex|claude|gemini|opencode --agent=<name> [--tool-bin=<binary>] [--permission-mode=default|yolo] [--tool-args=<args>] [--title=<text>] [--goal=<text>] [--plan=<file>] [--session=<key>] [--message=<text>] [--attach] [--no-launch] [--tmux] [--json] [--locale=en]',
224
+ 'aioson live:start [path] --tool=codex|claude|gemini|opencode --agent=<name> [--tool-bin=<binary>] [--permission-mode=default|yolo] [--tool-args=<args>] [--title=<text>] [--goal=<text>] [--plan=<file>] [--session=<key>] [--message=<text>] [--attach] [--no-launch] [--tmux] [--json] [--locale=en]',
223
225
  help_live_status:
224
226
  'aioson live:status [path] [--agent=<name>] [--limit=8] [--watch=2] [--format=compact|tmux-bar] [--json] [--locale=en]',
225
227
  help_live_handoff:
@@ -505,7 +507,22 @@ module.exports = {
505
507
  'Pentester app_target requires --feature=<slug> (or --slug=<slug>).',
506
508
  prompt_missing_scope_for_app_target:
507
509
  'Pentester app_target requires --scope=<area>.',
508
- prompt_title: 'Prompt for agent "{agent}" on tool "{tool}" (locale: {locale}):'
510
+ prompt_title: 'Prompt for agent "{agent}" on tool "{tool}" (locale: {locale}):',
511
+ help_available: 'Available agents:',
512
+ help_run_detail: 'Run "aioson agent:help <name>" for details on a specific agent.',
513
+ help_usage: 'Usage:',
514
+ help_claude_code: '(Claude Code)',
515
+ help_common_options: 'Common options:',
516
+ help_opt_tool: 'Target tool (codex|claude|gemini|opencode)',
517
+ help_opt_language: 'Interaction language (e.g., pt-BR, en)',
518
+ help_opt_headless: 'Output prompt only, no runtime tracking',
519
+ help_opt_output: 'Save headless prompt to file',
520
+ help_opt_json: 'JSON output mode',
521
+ help_agent_options: 'Agent-specific options ({command}):',
522
+ help_requires: 'Requires:',
523
+ help_produces: 'Produces:',
524
+ help_instruction_file: 'Instruction file:',
525
+ help_unknown_agent: 'Unknown agent: {agent}'
509
526
  },
510
527
  context_validate: {
511
528
  missing_file: 'Context file not found: {path}',
@@ -1090,11 +1107,11 @@ module.exports = {
1090
1107
  plan_not_found: 'Plan file not found: {plan}',
1091
1108
  no_active_session: 'No active live session found for {agent}.',
1092
1109
  session_not_active: 'Live session for {agent} is not active.',
1093
- json_requires_no_launch: '--json requires --no-launch for live:start because foreground launch is interactive.',
1094
- tool_binary_not_found: 'Tool binary not found in PATH: {binary}',
1095
- tool_mismatch: 'Active session uses tool "{existing}" but --tool={requested} was given. Close the session first or use the same tool.',
1096
- tool_mismatch_auto_closed: 'Previous live session used "{existing}" and was auto-closed. Starting a new session with "{requested}".',
1097
- micro_task_already_open: 'A live micro-task is already open for {agent}. Emit task_completed before task_started again.',
1110
+ json_requires_no_launch: '--json requires --no-launch for live:start because foreground launch is interactive.',
1111
+ tool_binary_not_found: 'Tool binary not found in PATH: {binary}',
1112
+ tool_mismatch: 'Active session uses tool "{existing}" but --tool={requested} was given. Close the session first or use the same tool.',
1113
+ tool_mismatch_auto_closed: 'Previous live session used "{existing}" and was auto-closed. Starting a new session with "{requested}".',
1114
+ micro_task_already_open: 'A live micro-task is already open for {agent}. Emit task_completed before task_started again.',
1098
1115
  handoff_same_agent: 'live:handoff requires different --agent and --to values.',
1099
1116
  handoff_agent_mismatch: 'No active live session found for {agent}.',
1100
1117
  watch_json_conflict: '--watch cannot be combined with --json.',
@@ -20,6 +20,8 @@ module.exports = {
20
20
  help_agents: 'aioson agents [path] [--lang=<bcp47-tag>] [--locale=es]',
21
21
  help_agent_prompt:
22
22
  'aioson agent:prompt <agent> [path] [--tool=codex|claude|gemini|opencode] [--lang=<bcp47-tag>] [--locale=es]',
23
+ help_agent_help:
24
+ 'aioson agent:help [agent] [--json]',
23
25
  help_agent_invoke:
24
26
  'aioson agent:invoke <agent> [path] [--tool=codex|claude|gemini|opencode] [--mode=framework_target|app_target] [--feature=<slug>] [--scope=<area>] [--lang=<bcp47-tag>] [--locale=es]',
25
27
  help_context_validate: 'aioson context:validate [path] [--json] [--locale=es]',
@@ -383,7 +385,22 @@ module.exports = {
383
385
  'Pentester app_target requiere --feature=<slug> (o --slug=<slug>).',
384
386
  prompt_missing_scope_for_app_target:
385
387
  'Pentester app_target requiere --scope=<area>.',
386
- prompt_title: 'Prompt para el agente "{agent}" en la herramienta "{tool}" (locale: {locale}):'
388
+ prompt_title: 'Prompt para el agente "{agent}" en la herramienta "{tool}" (locale: {locale}):',
389
+ help_available: 'Agentes disponibles:',
390
+ help_run_detail: 'Ejecute "aioson agent:help <nombre>" para detalles de un agente específico.',
391
+ help_usage: 'Uso:',
392
+ help_claude_code: '(Claude Code)',
393
+ help_common_options: 'Opciones comunes:',
394
+ help_opt_tool: 'Herramienta destino (codex|claude|gemini|opencode)',
395
+ help_opt_language: 'Idioma de interacción (ej: pt-BR, en)',
396
+ help_opt_headless: 'Solo salida del prompt, sin rastreo de runtime',
397
+ help_opt_output: 'Guardar prompt headless en archivo',
398
+ help_opt_json: 'Modo de salida JSON',
399
+ help_agent_options: 'Opciones específicas del agente ({command}):',
400
+ help_requires: 'Requiere:',
401
+ help_produces: 'Produce:',
402
+ help_instruction_file: 'Archivo de instrucción:',
403
+ help_unknown_agent: 'Agente desconocido: {agent}'
387
404
  },
388
405
  context_validate: {
389
406
  missing_file: 'Archivo de contexto no encontrado: {path}',
@@ -20,6 +20,8 @@ module.exports = {
20
20
  help_agents: 'aioson agents [path] [--lang=<bcp47-tag>] [--locale=fr]',
21
21
  help_agent_prompt:
22
22
  'aioson agent:prompt <agent> [path] [--tool=codex|claude|gemini|opencode] [--lang=<bcp47-tag>] [--locale=fr]',
23
+ help_agent_help:
24
+ 'aioson agent:help [agent] [--json]',
23
25
  help_agent_invoke:
24
26
  'aioson agent:invoke <agent> [path] [--tool=codex|claude|gemini|opencode] [--mode=framework_target|app_target] [--feature=<slug>] [--scope=<area>] [--lang=<bcp47-tag>] [--locale=fr]',
25
27
  help_context_validate: 'aioson context:validate [path] [--json] [--locale=fr]',
@@ -382,7 +384,22 @@ module.exports = {
382
384
  'Pentester app_target exige --feature=<slug> (ou --slug=<slug>).',
383
385
  prompt_missing_scope_for_app_target:
384
386
  'Pentester app_target exige --scope=<area>.',
385
- prompt_title: 'Prompt pour l agent "{agent}" sur l outil "{tool}" (locale : {locale}) :'
387
+ prompt_title: 'Prompt pour l agent "{agent}" sur l outil "{tool}" (locale : {locale}) :',
388
+ help_available: 'Agents disponibles :',
389
+ help_run_detail: 'Exécutez "aioson agent:help <nom>" pour les détails d un agent spécifique.',
390
+ help_usage: 'Utilisation :',
391
+ help_claude_code: '(Claude Code)',
392
+ help_common_options: 'Options communes :',
393
+ help_opt_tool: 'Outil cible (codex|claude|gemini|opencode)',
394
+ help_opt_language: 'Langue d interaction (ex : pt-BR, en)',
395
+ help_opt_headless: 'Sortie du prompt uniquement, sans suivi runtime',
396
+ help_opt_output: 'Enregistrer le prompt headless dans un fichier',
397
+ help_opt_json: 'Mode de sortie JSON',
398
+ help_agent_options: 'Options spécifiques de l agent ({command}) :',
399
+ help_requires: 'Requiert :',
400
+ help_produces: 'Produit :',
401
+ help_instruction_file: 'Fichier d instruction :',
402
+ help_unknown_agent: 'Agent inconnu : {agent}'
386
403
  },
387
404
  context_validate: {
388
405
  missing_file: 'Fichier de contexte introuvable : {path}',
@@ -20,6 +20,8 @@ module.exports = {
20
20
  help_agents: 'aioson agents [path] [--lang=<bcp47-tag>] [--locale=pt-BR]',
21
21
  help_agent_prompt:
22
22
  'aioson agent:prompt <agent> [path] [--tool=codex|claude|gemini|opencode] [--lang=<bcp47-tag>] [--locale=pt-BR]',
23
+ help_agent_help:
24
+ 'aioson agent:help [agent] [--json]',
23
25
  help_agent_invoke:
24
26
  'aioson agent:invoke <agent> [path] [--tool=codex|claude|gemini|opencode] [--mode=framework_target|app_target] [--feature=<slug>] [--scope=<area>] [--lang=<bcp47-tag>] [--locale=pt-BR]',
25
27
  help_context_validate: 'aioson context:validate [path] [--json] [--locale=pt-BR]',
@@ -217,7 +219,7 @@ module.exports = {
217
219
  help_runtime_emit:
218
220
  'aioson runtime:emit [path] --agent=<nome> [--type=<evento>] [--summary=<texto>] [--title=<texto>] [--refs=<arquivo[,arquivo2]>] [--plan-step=<id>] [--meta=<json>] [--json] [--locale=pt-BR]',
219
221
  help_live_start:
220
- 'aioson live:start [path] --tool=codex|claude|gemini|opencode --agent=<nome> [--tool-bin=<binario>] [--permission-mode=default|yolo] [--tool-args=<args>] [--title=<texto>] [--goal=<texto>] [--plan=<arquivo>] [--session=<chave>] [--message=<texto>] [--attach] [--no-launch] [--tmux] [--json] [--locale=pt-BR]',
222
+ 'aioson live:start [path] --tool=codex|claude|gemini|opencode --agent=<nome> [--tool-bin=<binario>] [--permission-mode=default|yolo] [--tool-args=<args>] [--title=<texto>] [--goal=<texto>] [--plan=<arquivo>] [--session=<chave>] [--message=<texto>] [--attach] [--no-launch] [--tmux] [--json] [--locale=pt-BR]',
221
223
  help_live_status:
222
224
  'aioson live:status [path] [--agent=<nome>] [--limit=8] [--watch=2] [--format=compact|tmux-bar] [--json] [--locale=pt-BR]',
223
225
  help_live_handoff:
@@ -477,7 +479,22 @@ module.exports = {
477
479
  'Pentester app_target exige --feature=<slug> (ou --slug=<slug>).',
478
480
  prompt_missing_scope_for_app_target:
479
481
  'Pentester app_target exige --scope=<area>.',
480
- prompt_title: 'Prompt para o agente "{agent}" na ferramenta "{tool}" (locale: {locale}):'
482
+ prompt_title: 'Prompt para o agente "{agent}" na ferramenta "{tool}" (locale: {locale}):',
483
+ help_available: 'Agentes disponíveis:',
484
+ help_run_detail: 'Execute "aioson agent:help <nome>" para detalhes de um agente específico.',
485
+ help_usage: 'Uso:',
486
+ help_claude_code: '(Claude Code)',
487
+ help_common_options: 'Opções comuns:',
488
+ help_opt_tool: 'Ferramenta alvo (codex|claude|gemini|opencode)',
489
+ help_opt_language: 'Idioma de interação (ex: pt-BR, en)',
490
+ help_opt_headless: 'Saída apenas do prompt, sem rastreamento de runtime',
491
+ help_opt_output: 'Salvar prompt headless em arquivo',
492
+ help_opt_json: 'Modo de saída JSON',
493
+ help_agent_options: 'Opções específicas do agente ({command}):',
494
+ help_requires: 'Requer:',
495
+ help_produces: 'Produz:',
496
+ help_instruction_file: 'Arquivo de instrução:',
497
+ help_unknown_agent: 'Agente desconhecido: {agent}'
481
498
  },
482
499
  context_validate: {
483
500
  missing_file: 'Arquivo de contexto nao encontrado: {path}',
@@ -1116,11 +1133,11 @@ module.exports = {
1116
1133
  plan_not_found: 'Arquivo de plano nao encontrado: {plan}',
1117
1134
  no_active_session: 'Nenhuma sessao live ativa encontrada para {agent}.',
1118
1135
  session_not_active: 'A sessao live de {agent} nao esta ativa.',
1119
- json_requires_no_launch: '--json requer --no-launch para live:start porque o lancamento em primeiro plano e interativo.',
1120
- tool_binary_not_found: 'Binario da ferramenta nao encontrado no PATH: {binary}',
1121
- tool_mismatch: 'A sessao ativa usa a ferramenta "{existing}" mas --tool={requested} foi informado. Encerre a sessao primeiro ou use a mesma ferramenta.',
1122
- tool_mismatch_auto_closed: 'A sessao live anterior usava "{existing}" e foi fechada automaticamente. Iniciando nova sessao com "{requested}".',
1123
- micro_task_already_open: 'Uma micro-tarefa live ja esta aberta para {agent}. Emita task_completed antes de task_started novamente.',
1136
+ json_requires_no_launch: '--json requer --no-launch para live:start porque o lancamento em primeiro plano e interativo.',
1137
+ tool_binary_not_found: 'Binario da ferramenta nao encontrado no PATH: {binary}',
1138
+ tool_mismatch: 'A sessao ativa usa a ferramenta "{existing}" mas --tool={requested} foi informado. Encerre a sessao primeiro ou use a mesma ferramenta.',
1139
+ tool_mismatch_auto_closed: 'A sessao live anterior usava "{existing}" e foi fechada automaticamente. Iniciando nova sessao com "{requested}".',
1140
+ micro_task_already_open: 'Uma micro-tarefa live ja esta aberta para {agent}. Emita task_completed antes de task_started novamente.',
1124
1141
  handoff_same_agent: 'live:handoff requer valores diferentes para --agent e --to.',
1125
1142
  handoff_agent_mismatch: 'Nenhuma sessao live ativa encontrada para {agent}.',
1126
1143
  watch_json_conflict: '--watch nao pode ser combinado com --json.',
@@ -1,5 +1,16 @@
1
- ---
2
- description: "AIOSON — Domain discovery and entity mapping (SMALL/MEDIUM)"
3
- ---
4
-
5
- Read `.aioson/agents/analyst.md` and follow all instructions. $ARGUMENTS
1
+ ---
2
+ description: "AIOSON — Domain discovery and entity mapping (SMALL/MEDIUM)"
3
+ ---
4
+
5
+ If $ARGUMENTS is exactly "--help" or starts with "--help":
6
+ Do NOT activate the agent. Instead, display this help and stop:
7
+
8
+ @analyst — Domain discovery and entity mapping (SMALL/MEDIUM)
9
+ Usage: /aioson:agent:analyst [task description]
10
+ Requires:
11
+ .aioson/context/project.context.md
12
+ Produces: .aioson/context/discovery.md
13
+ Instruction file: .aioson/agents/analyst.md
14
+ CLI help: aioson agent:help analyst
15
+
16
+ Otherwise: Read `.aioson/agents/analyst.md` and follow all instructions. $ARGUMENTS
@@ -1,5 +1,17 @@
1
- ---
2
- description: "AIOSON — Project structure and technical decisions (SMALL/MEDIUM)"
3
- ---
4
-
5
- Read `.aioson/agents/architect.md` and follow all instructions. $ARGUMENTS
1
+ ---
2
+ description: "AIOSON — Project structure and technical decisions (SMALL/MEDIUM)"
3
+ ---
4
+
5
+ If $ARGUMENTS is exactly "--help" or starts with "--help":
6
+ Do NOT activate the agent. Instead, display this help and stop:
7
+
8
+ @architect — Project structure and technical decisions (SMALL/MEDIUM)
9
+ Usage: /aioson:agent:architect [task description]
10
+ Requires:
11
+ .aioson/context/project.context.md
12
+ .aioson/context/discovery.md
13
+ Produces: .aioson/context/architecture.md
14
+ Instruction file: .aioson/agents/architect.md
15
+ CLI help: aioson agent:help architect
16
+
17
+ Otherwise: Read `.aioson/agents/architect.md` and follow all instructions. $ARGUMENTS
@@ -1,5 +1,16 @@
1
- ---
2
- description: "AIOSON — Pre-production briefings and planning"
3
- ---
4
-
5
- Read `.aioson/agents/briefing.md` and follow all instructions. $ARGUMENTS
1
+ ---
2
+ description: "AIOSON — Pre-production briefings and planning"
3
+ ---
4
+
5
+ If $ARGUMENTS is exactly "--help" or starts with "--help":
6
+ Do NOT activate the agent. Instead, display this help and stop:
7
+
8
+ @briefing — Pre-production briefings and planning
9
+ Usage: /aioson:agent:briefing [task description]
10
+ Requires:
11
+ .aioson/context/project.context.md
12
+ Produces: .aioson/briefings/{slug}/
13
+ Instruction file: .aioson/agents/briefing.md
14
+ CLI help: aioson agent:help briefing
15
+
16
+ Otherwise: Read `.aioson/agents/briefing.md` and follow all instructions. $ARGUMENTS