aia 1.1.0 → 2.0.0.0.pre.alpha
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.
- checksums.yaml +4 -4
- data/.envrc +5 -1
- data/.loki +231 -0
- data/.quality/flay_baseline.txt +1 -0
- data/.quality/flog_baseline.txt +29 -0
- data/.quality/reek_baseline.txt +80 -0
- data/.rubocop.yml +116 -0
- data/.version +1 -1
- data/CHANGELOG.md +266 -42
- data/IMPLEMENTATION_PLAN.md +506 -0
- data/README.md +266 -238
- data/Rakefile +118 -5
- data/architecture_review.md +314 -0
- data/bin/aia +16 -0
- data/docs/AGENTS.md +40 -0
- data/docs/advanced-prompting.md +67 -3
- data/docs/cli-reference.md +312 -56
- data/docs/configuration.md +130 -19
- data/docs/contributing.md +56 -2
- data/docs/directives-reference.md +593 -78
- data/docs/faq.md +85 -3
- data/docs/guides/available-models.md +1 -1
- data/docs/guides/basic-usage.md +6 -6
- data/docs/guides/chat.md +40 -16
- data/docs/guides/crew.md +239 -0
- data/docs/guides/executable-prompts.md +1 -1
- data/docs/guides/index.md +1 -0
- data/docs/guides/models.md +15 -0
- data/docs/index.md +29 -2
- data/docs/installation.md +44 -17
- data/docs/mcp-integration.md +40 -0
- data/docs/prompt_management.md +85 -86
- data/docs/security.md +47 -0
- data/docs/special_projects_guide.md +386 -0
- data/docs/tools-and-mcp-examples.md +23 -0
- data/docs/workflows-and-pipelines.md +84 -7
- data/examples/.gitignore +1 -0
- data/examples/00_setup_aia.sh +27 -44
- data/examples/11_multi_model.sh +4 -14
- data/examples/12_token_usage.sh +3 -12
- data/examples/18_tools.sh +10 -2
- data/examples/22_chat_mode.sh +0 -10
- data/examples/23_verify.sh +139 -0
- data/examples/24_decompose.sh +139 -0
- data/examples/25_spawn.sh +139 -0
- data/examples/26_debate.sh +97 -0
- data/examples/27_mention_routing.sh +157 -0
- data/examples/28_model_switching.sh +106 -0
- data/examples/29_agent_harness.sh +177 -0
- data/examples/README.md +65 -0
- data/examples/advanced_multi_robot_capabilities_without_examples.md +106 -0
- data/examples/aia_config.yml +1 -1
- data/examples/aia_config_orchestrator.yml +45 -0
- data/examples/common.sh +19 -0
- data/examples/context/tech_stack.md +2 -2
- data/examples/prompts_dir/project_summary +2 -2
- data/examples/prompts_dir/roles/orchestrator.md +21 -0
- data/examples/requirements/sinatra_taskflow_app.md +139 -0
- data/examples/rules/01_classify_ruby.rb +16 -0
- data/examples/rules/02_prefer_claude_for_code.rb +19 -0
- data/examples/rules/03_gate_prompt_length.rb +19 -0
- data/examples/rules/04_tool_selection.rb +41 -0
- data/examples/rules/README.md +30 -0
- data/examples/run_all.sh +48 -15
- data/examples/tools/word_count_tool.rb +1 -1
- data/lib/AGENTS.md +57 -0
- data/lib/aia/chat_loop.rb +306 -159
- data/lib/aia/config/cli_parser.rb +174 -111
- data/lib/aia/config/defaults.yml +62 -33
- data/lib/aia/config/mcp_parser.rb +39 -46
- data/lib/aia/config/model_spec.rb +34 -2
- data/lib/aia/config/validator.rb +121 -138
- data/lib/aia/config.rb +110 -145
- data/lib/aia/content_extractor.rb +153 -0
- data/lib/aia/cost_calculator.rb +38 -0
- data/lib/aia/crew.rb +164 -0
- data/lib/aia/debate_handler.rb +166 -0
- data/lib/aia/delegate_handler.rb +112 -0
- data/lib/aia/directive.rb +33 -18
- data/lib/aia/directive_processor.rb +16 -7
- data/lib/aia/directives/configuration_directives.rb +160 -20
- data/lib/aia/directives/context_directives.rb +38 -26
- data/lib/aia/directives/execution_directives.rb +136 -4
- data/lib/aia/directives/model_directives.rb +76 -34
- data/lib/aia/directives/trakflow_directives.rb +44 -0
- data/lib/aia/directives/utility_directives.rb +203 -6
- data/lib/aia/directives/web_and_file_directives.rb +96 -60
- data/lib/aia/errors.rb +15 -0
- data/lib/aia/fact_asserter.rb +27 -0
- data/lib/aia/fzf.rb +9 -31
- data/lib/aia/handler_context.rb +17 -0
- data/lib/aia/handler_protocol.rb +19 -0
- data/lib/aia/history_transfer.rb +55 -0
- data/lib/aia/input_collector.rb +3 -3
- data/lib/aia/layered_orchestrator.rb +448 -0
- data/lib/aia/logger.rb +24 -4
- data/lib/aia/mcp_config_normalizer.rb +35 -0
- data/lib/aia/mcp_connection_manager.rb +305 -0
- data/lib/aia/mcp_discovery.rb +44 -0
- data/lib/aia/mcp_grouper.rb +33 -0
- data/lib/aia/mcp_utility.rb +57 -0
- data/lib/aia/mention_router.rb +260 -0
- data/lib/aia/model_alias_registry.rb +97 -0
- data/lib/aia/model_switch_handler.rb +100 -0
- data/lib/aia/network_builder.rb +155 -0
- data/lib/aia/network_memory_manager.rb +55 -0
- data/lib/aia/patches/ruby_llm_streaming_error.rb +43 -0
- data/lib/aia/patches/ruby_llm_tool_error.rb +96 -0
- data/lib/aia/pipeline_orchestrator.rb +262 -0
- data/lib/aia/plugin_loader.rb +170 -0
- data/lib/aia/plugin_monitor.rb +208 -0
- data/lib/aia/prompt_decomposer.rb +157 -0
- data/lib/aia/prompt_handler.rb +19 -39
- data/lib/aia/robot_builder.rb +51 -0
- data/lib/aia/robot_factory.rb +334 -0
- data/lib/aia/robot_namer.rb +116 -0
- data/lib/aia/session.rb +83 -17
- data/lib/aia/session_tracker.rb +209 -0
- data/lib/aia/similarity_scorer.rb +39 -0
- data/lib/aia/skill_utils.rb +105 -1
- data/lib/aia/spawn_handler.rb +129 -0
- data/lib/aia/spawn_spec_parser.rb +65 -0
- data/lib/aia/special_mode_handler.rb +302 -0
- data/lib/aia/startup_coordinator.rb +150 -0
- data/lib/aia/streaming_runner.rb +169 -0
- data/lib/aia/system_prompt_assembler.rb +88 -0
- data/lib/aia/task_coordinator.rb +202 -0
- data/lib/aia/task_decomposer.rb +57 -0
- data/lib/aia/task_executor.rb +51 -0
- data/lib/aia/tfidf_math.rb +27 -0
- data/lib/aia/tool_filter/tfidf.rb +116 -0
- data/lib/aia/tool_filter/wordnet_expander.rb +127 -0
- data/lib/aia/tool_filter.rb +82 -0
- data/lib/aia/tool_filter_registry.rb +30 -0
- data/lib/aia/tool_filter_strategy.rb +143 -0
- data/lib/aia/tool_loader.rb +210 -0
- data/lib/aia/tool_utility.rb +30 -0
- data/lib/aia/tools/delegate_to_foreman_tool.rb +70 -0
- data/lib/aia/tools/recruit_robot_tool.rb +60 -0
- data/lib/aia/tools/reskill_robot_tool.rb +44 -0
- data/lib/aia/tools/task_board_tool.rb +114 -0
- data/lib/aia/trakflow_bridge.rb +173 -0
- data/lib/aia/turn_state.rb +94 -0
- data/lib/aia/ui_presenter.rb +166 -198
- data/lib/aia/utility.rb +134 -87
- data/lib/aia/{history_manager.rb → variable_input_collector.rb} +8 -9
- data/lib/aia/verification_network.rb +58 -0
- data/lib/aia.rb +108 -63
- data/mkdocs.yml +1 -0
- metadata +179 -56
- data/justfile +0 -215
- data/lib/aia/adapter/chat_execution.rb +0 -242
- data/lib/aia/adapter/error_handler.rb +0 -68
- data/lib/aia/adapter/gem_activator.rb +0 -57
- data/lib/aia/adapter/mcp_connector.rb +0 -274
- data/lib/aia/adapter/modality_handlers.rb +0 -167
- data/lib/aia/adapter/model_registry.rb +0 -81
- data/lib/aia/adapter/multi_model_chat.rb +0 -218
- data/lib/aia/adapter/provider_configurator.rb +0 -59
- data/lib/aia/adapter/tool_filter.rb +0 -85
- data/lib/aia/adapter/tool_loader.rb +0 -90
- data/lib/aia/chat_processor_service.rb +0 -164
- data/lib/aia/prompt_pipeline.rb +0 -183
- data/lib/aia/ruby_llm_adapter.rb +0 -95
- data/lib/extensions/openstruct_merge.rb +0 -48
- data/lib/extensions/ruby_llm/.irbrc +0 -56
- data/lib/extensions/ruby_llm/modalities.rb +0 -36
- data/lib/extensions/ruby_llm/provider_fix.rb +0 -79
- data/lib/refinements/string.rb +0 -16
- data/main.just +0 -76
data/docs/configuration.md
CHANGED
|
@@ -1,3 +1,43 @@
|
|
|
1
|
+
<!-- Tocer[start]: Auto-generated, don't remove. -->
|
|
2
|
+
|
|
3
|
+
## Table of Contents
|
|
4
|
+
|
|
5
|
+
- [Configuration](#configuration)
|
|
6
|
+
- [Configuration Precedence](#configuration-precedence)
|
|
7
|
+
- [Configuration Files](#configuration-files)
|
|
8
|
+
- [Primary Configuration File](#primary-configuration-file)
|
|
9
|
+
- [Environment Variables](#environment-variables)
|
|
10
|
+
- [Command Line Arguments](#command-line-arguments)
|
|
11
|
+
- [Embedded Directives](#embedded-directives)
|
|
12
|
+
- [Logger Configuration](#logger-configuration)
|
|
13
|
+
- [Configuration File Settings](#configuration-file-settings)
|
|
14
|
+
- [CLI Log Level Override](#cli-log-level-override)
|
|
15
|
+
- [Environment Variables](#environment-variables-1)
|
|
16
|
+
- [Log Levels](#log-levels)
|
|
17
|
+
- [Example: File-Based Logging](#example-file-based-logging)
|
|
18
|
+
- [Advanced Configuration](#advanced-configuration)
|
|
19
|
+
- [Multi-Model Configuration](#multi-model-configuration)
|
|
20
|
+
- [Tool Configuration](#tool-configuration)
|
|
21
|
+
- [MCP Server Configuration](#mcp-server-configuration)
|
|
22
|
+
- [Prompt Directory Structure](#prompt-directory-structure)
|
|
23
|
+
- [Configuration Examples](#configuration-examples)
|
|
24
|
+
- [Development Setup](#development-setup)
|
|
25
|
+
- [Production Setup](#production-setup)
|
|
26
|
+
- [Creative Writing Setup](#creative-writing-setup)
|
|
27
|
+
- [Validation and Troubleshooting](#validation-and-troubleshooting)
|
|
28
|
+
- [Check Configuration](#check-configuration)
|
|
29
|
+
- [Validate Settings](#validate-settings)
|
|
30
|
+
- [Common Issues](#common-issues)
|
|
31
|
+
- [Model Not Found](#model-not-found)
|
|
32
|
+
- [Permission Errors](#permission-errors)
|
|
33
|
+
- [Tool Loading Errors](#tool-loading-errors)
|
|
34
|
+
- [Configuration Migration](#configuration-migration)
|
|
35
|
+
- [Updating from Older Versions](#updating-from-older-versions)
|
|
36
|
+
- [Best Practices](#best-practices)
|
|
37
|
+
- [Security Considerations](#security-considerations)
|
|
38
|
+
|
|
39
|
+
<!-- Tocer[finish]: Auto-generated, don't remove. -->
|
|
40
|
+
|
|
1
41
|
# Configuration
|
|
2
42
|
|
|
3
43
|
AIA provides a flexible configuration system with multiple layers of precedence, allowing you to customize behavior at different levels.
|
|
@@ -27,10 +67,9 @@ service:
|
|
|
27
67
|
name: aia
|
|
28
68
|
|
|
29
69
|
# LLM Configuration
|
|
30
|
-
# Access: AIA.config.llm.
|
|
31
|
-
# Env:
|
|
70
|
+
# Access: AIA.config.llm.temperature, etc.
|
|
71
|
+
# Env: AIA_LLM__TEMPERATURE, etc.
|
|
32
72
|
llm:
|
|
33
|
-
adapter: ruby_llm # AI adapter to use (currently only ruby_llm)
|
|
34
73
|
temperature: 0.7 # Creativity/randomness (0.0-2.0)
|
|
35
74
|
max_tokens: 2048 # Maximum response length
|
|
36
75
|
top_p: 1.0 # Nucleus sampling
|
|
@@ -54,7 +93,7 @@ prompts:
|
|
|
54
93
|
roles_dir: ~/.prompts/roles # Full path to roles directory
|
|
55
94
|
role: ~ # Default role
|
|
56
95
|
skills: [] # Skill IDs to prepend to prompt (set by --skill/-s)
|
|
57
|
-
skills_prefix:
|
|
96
|
+
skills_prefix: ~ # Subdirectory appended to skills base path (nil = unset)
|
|
58
97
|
system_prompt: ~ # Default system prompt
|
|
59
98
|
parameter_regex: ~ # Regex for parameter extraction
|
|
60
99
|
|
|
@@ -81,16 +120,16 @@ output:
|
|
|
81
120
|
file: temp.md # Output file (null = no file output)
|
|
82
121
|
append: false # Append to output file instead of overwriting
|
|
83
122
|
markdown: true # Format output with Markdown
|
|
84
|
-
history_file: ~/.prompts/_prompts.log #
|
|
123
|
+
history_file: ~/.prompts/_prompts.log # Reline chat input history (chat mode only; up to 50 entries)
|
|
85
124
|
|
|
86
125
|
# Audio Configuration
|
|
87
126
|
# Access: AIA.config.audio.voice, AIA.config.audio.speak_command, etc.
|
|
88
127
|
# Env: AIA_AUDIO__VOICE, AIA_AUDIO__SPEAK_COMMAND, etc.
|
|
89
128
|
audio:
|
|
90
|
-
voice:
|
|
91
|
-
speak_command:
|
|
92
|
-
speech_model:
|
|
93
|
-
transcription_model:
|
|
129
|
+
voice: ~ # Voice name (macOS say: e.g. Samantha; OpenAI: alloy/nova/echo/…)
|
|
130
|
+
speak_command: say # TTS command; macOS default is `say`
|
|
131
|
+
speech_model: ~ # Passed as SPEECH_MODEL env var to the speak command (unset = not passed)
|
|
132
|
+
transcription_model: ~ # Default transcription model for RubyLLM (unset = RubyLLM default)
|
|
94
133
|
|
|
95
134
|
# Image Configuration
|
|
96
135
|
# Access: AIA.config.image.model, AIA.config.image.size, etc.
|
|
@@ -127,11 +166,11 @@ flags:
|
|
|
127
166
|
tokens: false # Show token usage
|
|
128
167
|
no_mcp: false # Disable MCP server processing
|
|
129
168
|
speak: false # Convert text to speech
|
|
130
|
-
terse: false # Request shorter AI responses
|
|
131
169
|
shell: true # Enable shell integration
|
|
132
170
|
erb: true # Enable ERB processing
|
|
133
171
|
clear: false # Clear conversation history
|
|
134
172
|
consensus: false # Enable consensus mode for multi-model
|
|
173
|
+
thinking: false # Show raw <think> reasoning blocks from local models
|
|
135
174
|
|
|
136
175
|
# Logger Configuration
|
|
137
176
|
# Access: AIA.config.logger.aia.file, AIA.config.logger.llm.level, etc.
|
|
@@ -183,6 +222,41 @@ paths:
|
|
|
183
222
|
# Context Files (set at runtime)
|
|
184
223
|
# Access: AIA.config.context_files (array of file paths)
|
|
185
224
|
context_files: []
|
|
225
|
+
|
|
226
|
+
# Concurrency Configuration
|
|
227
|
+
# Access: AIA.config.concurrency.auto, .independent_servers, .threshold
|
|
228
|
+
# Controls automatic MCP server parallelization.
|
|
229
|
+
concurrency:
|
|
230
|
+
auto: false # Enable automatic MCP concurrency
|
|
231
|
+
independent_servers: [] # Servers safe to run in parallel
|
|
232
|
+
threshold: 2 # Minimum servers needed to trigger concurrency
|
|
233
|
+
|
|
234
|
+
# Model Aliases (short name → full model ID)
|
|
235
|
+
# Access: AIA.config.model_aliases
|
|
236
|
+
# Example: { "gpt4": "gpt-4o", "sonnet": "claude-sonnet-4-20250514" }
|
|
237
|
+
model_aliases: {}
|
|
238
|
+
|
|
239
|
+
# MCP Server Filtering
|
|
240
|
+
# Access: AIA.config.mcp_use, AIA.config.mcp_skip
|
|
241
|
+
mcp_use: ~ # Array of MCP server names to activate (nil = all)
|
|
242
|
+
mcp_skip: ~ # Array of MCP server names to skip
|
|
243
|
+
|
|
244
|
+
# Tool Filter Flags
|
|
245
|
+
# Access: AIA.config.flags.track_pipeline, AIA.config.flags.expert_routing
|
|
246
|
+
# Env: AIA_FLAGS__TRACK_PIPELINE, AIA_FLAGS__EXPERT_ROUTING, etc.
|
|
247
|
+
# (These belong under flags: but are shown here for reference)
|
|
248
|
+
#
|
|
249
|
+
# flags:
|
|
250
|
+
# track_pipeline: false # Track which pipeline prompts are executed
|
|
251
|
+
# expert_routing: false # Route chat turns to specialist robots
|
|
252
|
+
#
|
|
253
|
+
# Tool Filter Strategy Flags
|
|
254
|
+
# auto_tool_filter: true # TF-IDF cosine similarity filter (on by default)
|
|
255
|
+
# tool_filter_b: false # Zvec HNSW vector DB filter
|
|
256
|
+
# tool_filter_c: false # SqliteVec filter
|
|
257
|
+
# tool_filter_d: false # LSI (latent semantic indexing) filter
|
|
258
|
+
# tool_filter_load: false # Load saved filter model from disk
|
|
259
|
+
# tool_filter_save: false # Save filter model to disk after build
|
|
186
260
|
```
|
|
187
261
|
|
|
188
262
|
## Environment Variables
|
|
@@ -192,7 +266,6 @@ Use double underscore (`__`) for nested configuration sections:
|
|
|
192
266
|
|
|
193
267
|
```bash
|
|
194
268
|
# LLM settings (nested under llm:)
|
|
195
|
-
export AIA_LLM__ADAPTER="ruby_llm"
|
|
196
269
|
export AIA_LLM__TEMPERATURE="0.8"
|
|
197
270
|
export AIA_LLM__MAX_TOKENS="2048"
|
|
198
271
|
export AIA_LLM__TOP_P="1.0"
|
|
@@ -209,7 +282,7 @@ export AIA_PROMPTS__EXTNAME=".md"
|
|
|
209
282
|
export AIA_PROMPTS__ROLES_PREFIX="roles"
|
|
210
283
|
export AIA_PROMPTS__ROLES_DIR="~/.prompts/roles"
|
|
211
284
|
export AIA_PROMPTS__ROLE="expert"
|
|
212
|
-
export AIA_PROMPTS__SKILLS_PREFIX="skills
|
|
285
|
+
# export AIA_PROMPTS__SKILLS_PREFIX="my-prefix" # No default — unset means use skills.dir directly
|
|
213
286
|
export AIA_PROMPTS__SYSTEM_PROMPT="my_system_prompt"
|
|
214
287
|
export AIA_PROMPTS__PARAMETER_REGEX='\{\{(\w+)\}\}'
|
|
215
288
|
|
|
@@ -223,9 +296,9 @@ export AIA_OUTPUT__MARKDOWN="true"
|
|
|
223
296
|
export AIA_OUTPUT__HISTORY_FILE="~/.prompts/_prompts.log"
|
|
224
297
|
|
|
225
298
|
# Audio settings (nested under audio:)
|
|
226
|
-
export AIA_AUDIO__VOICE="
|
|
227
|
-
export AIA_AUDIO__SPEAK_COMMAND="
|
|
228
|
-
export AIA_AUDIO__SPEECH_MODEL="tts-1"
|
|
299
|
+
export AIA_AUDIO__VOICE="Samantha" # macOS say voice (see: say -v '?')
|
|
300
|
+
export AIA_AUDIO__SPEAK_COMMAND="say" # default; swap for custom TTS script
|
|
301
|
+
export AIA_AUDIO__SPEECH_MODEL="tts-1" # passed as SPEECH_MODEL to speak_command
|
|
229
302
|
export AIA_AUDIO__TRANSCRIPTION_MODEL="whisper-1"
|
|
230
303
|
|
|
231
304
|
# Image settings (nested under image:)
|
|
@@ -251,11 +324,11 @@ export AIA_FLAGS__FUZZY="false"
|
|
|
251
324
|
export AIA_FLAGS__TOKENS="true"
|
|
252
325
|
export AIA_FLAGS__NO_MCP="false"
|
|
253
326
|
export AIA_FLAGS__SPEAK="false"
|
|
254
|
-
export AIA_FLAGS__TERSE="false"
|
|
255
327
|
export AIA_FLAGS__SHELL="true"
|
|
256
328
|
export AIA_FLAGS__ERB="true"
|
|
257
329
|
export AIA_FLAGS__CLEAR="false"
|
|
258
330
|
export AIA_FLAGS__CONSENSUS="false"
|
|
331
|
+
export AIA_FLAGS__THINKING="false"
|
|
259
332
|
|
|
260
333
|
# Logger settings (nested under logger:)
|
|
261
334
|
export AIA_LOGGER__AIA__FILE="~/.config/aia/aia.log"
|
|
@@ -476,10 +549,51 @@ prompts:
|
|
|
476
549
|
roles_prefix: roles # ~/.prompts/roles/
|
|
477
550
|
roles_dir: ~/.prompts/roles
|
|
478
551
|
role: ~ # Default role (null = none)
|
|
552
|
+
skills_prefix: ~ # Prefix appended to skills base (nil = unset, uses skills.dir directly)
|
|
553
|
+
skills: [] # Default skills (empty = none)
|
|
479
554
|
system_prompt: ~ # Default system prompt
|
|
480
555
|
parameter_regex: ~ # Custom parameter extraction regex
|
|
556
|
+
|
|
557
|
+
# Top-level directory shortcuts (expand ~ automatically)
|
|
558
|
+
roles:
|
|
559
|
+
dir: ~/.prompts/roles
|
|
560
|
+
|
|
561
|
+
skills:
|
|
562
|
+
dir: ~/.prompts/skills
|
|
481
563
|
```
|
|
482
564
|
|
|
565
|
+
**Prompt assembly order**:
|
|
566
|
+
|
|
567
|
+
In **pipeline mode** (default), each prompt text is assembled as:
|
|
568
|
+
1. **Role content** — identity and personality (`--role`)
|
|
569
|
+
2. **Skill content** — capabilities and approach (`--skill`, in declaration order)
|
|
570
|
+
3. **User prompt** — the actual request
|
|
571
|
+
|
|
572
|
+
In **chat mode** (`--chat`), the system prompt is assembled once at startup:
|
|
573
|
+
1. **System prompt** — guardrails and constraints (`--system-prompt`)
|
|
574
|
+
2. **Role content** — identity and personality (`--role`)
|
|
575
|
+
3. **Skill content** — injected here so it persists across all turns without repetition
|
|
576
|
+
|
|
577
|
+
Follow-up chat turns carry role and skill context implicitly via conversation history.
|
|
578
|
+
|
|
579
|
+
**Recommended directory layout**:
|
|
580
|
+
```
|
|
581
|
+
~/.prompts/
|
|
582
|
+
├── roles/
|
|
583
|
+
│ ├── ruby_expert.md # "You are a senior Ruby developer..."
|
|
584
|
+
│ └── teacher.md
|
|
585
|
+
├── skills/
|
|
586
|
+
│ ├── testing/
|
|
587
|
+
│ │ └── SKILL.md # Skill ID: "testing"
|
|
588
|
+
│ ├── debugging/
|
|
589
|
+
│ │ └── SKILL.md # Skill ID: "debugging"
|
|
590
|
+
│ └── refactoring/
|
|
591
|
+
│ └── SKILL.md # Skill ID: "refactoring"
|
|
592
|
+
└── my_prompt.md
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
Each skill is a **subdirectory** containing a `SKILL.md` file. The skill ID is the subdirectory name. Subdirectories without `SKILL.md` and plain `.md` files are ignored by `--list-skills`.
|
|
596
|
+
|
|
483
597
|
## Configuration Examples
|
|
484
598
|
|
|
485
599
|
### Development Setup
|
|
@@ -487,7 +601,6 @@ prompts:
|
|
|
487
601
|
```yaml
|
|
488
602
|
# ~/.config/aia/aia.yml - Development setup
|
|
489
603
|
llm:
|
|
490
|
-
adapter: ruby_llm
|
|
491
604
|
temperature: 0.3
|
|
492
605
|
|
|
493
606
|
models:
|
|
@@ -513,7 +626,6 @@ flags:
|
|
|
513
626
|
```yaml
|
|
514
627
|
# ~/.config/aia/aia.yml - Production setup
|
|
515
628
|
llm:
|
|
516
|
-
adapter: ruby_llm
|
|
517
629
|
temperature: 0.7
|
|
518
630
|
|
|
519
631
|
models:
|
|
@@ -542,7 +654,6 @@ flags:
|
|
|
542
654
|
```yaml
|
|
543
655
|
# ~/.config/aia/aia.yml - Creative writing
|
|
544
656
|
llm:
|
|
545
|
-
adapter: ruby_llm
|
|
546
657
|
temperature: 1.1
|
|
547
658
|
max_tokens: 4000
|
|
548
659
|
|
data/docs/contributing.md
CHANGED
|
@@ -1,3 +1,56 @@
|
|
|
1
|
+
<!-- Tocer[start]: Auto-generated, don't remove. -->
|
|
2
|
+
|
|
3
|
+
## Table of Contents
|
|
4
|
+
|
|
5
|
+
- [Contributing to AIA](#contributing-to-aia)
|
|
6
|
+
- [Ways to Contribute](#ways-to-contribute)
|
|
7
|
+
- [1. Report Issues](#1-report-issues)
|
|
8
|
+
- [2. Submit Code Changes](#2-submit-code-changes)
|
|
9
|
+
- [3. Improve Documentation](#3-improve-documentation)
|
|
10
|
+
- [4. Contribute Examples](#4-contribute-examples)
|
|
11
|
+
- [Getting Started](#getting-started)
|
|
12
|
+
- [Prerequisites](#prerequisites)
|
|
13
|
+
- [Setting Up Development Environment](#setting-up-development-environment)
|
|
14
|
+
- [Development Guidelines](#development-guidelines)
|
|
15
|
+
- [Code Standards](#code-standards)
|
|
16
|
+
- [Ruby Style Guide](#ruby-style-guide)
|
|
17
|
+
- [Testing Requirements](#testing-requirements)
|
|
18
|
+
- [Documentation Standards](#documentation-standards)
|
|
19
|
+
- [Commit Message Format](#commit-message-format)
|
|
20
|
+
- [Contributing Examples](#contributing-examples)
|
|
21
|
+
- [Prompt Examples](#prompt-examples)
|
|
22
|
+
- [File Structure](#file-structure)
|
|
23
|
+
- [Prompt Template Format](#prompt-template-format)
|
|
24
|
+
- [Tool Examples](#tool-examples)
|
|
25
|
+
- [File Structure](#file-structure-1)
|
|
26
|
+
- [Tool Template](#tool-template)
|
|
27
|
+
- [MCP Client Examples](#mcp-client-examples)
|
|
28
|
+
- [File Structure](#file-structure-2)
|
|
29
|
+
- [Pull Request Process](#pull-request-process)
|
|
30
|
+
- [Before Submitting](#before-submitting)
|
|
31
|
+
- [Submitting the Pull Request](#submitting-the-pull-request)
|
|
32
|
+
- [Review Process](#review-process)
|
|
33
|
+
- [Community Guidelines](#community-guidelines)
|
|
34
|
+
- [Communication](#communication)
|
|
35
|
+
- [Issue Reporting](#issue-reporting)
|
|
36
|
+
- [Feature Requests](#feature-requests)
|
|
37
|
+
- [Security](#security)
|
|
38
|
+
- [Reporting Security Issues](#reporting-security-issues)
|
|
39
|
+
- [Security Best Practices](#security-best-practices)
|
|
40
|
+
- [Recognition](#recognition)
|
|
41
|
+
- [Contributors](#contributors)
|
|
42
|
+
- [Types of Recognition](#types-of-recognition)
|
|
43
|
+
- [Getting Help](#getting-help)
|
|
44
|
+
- [Development Questions](#development-questions)
|
|
45
|
+
- [Code Review](#code-review)
|
|
46
|
+
- [Community Support](#community-support)
|
|
47
|
+
- [Release Process](#release-process)
|
|
48
|
+
- [Version Management](#version-management)
|
|
49
|
+
- [Release Schedule](#release-schedule)
|
|
50
|
+
- [Thank You!](#thank-you)
|
|
51
|
+
|
|
52
|
+
<!-- Tocer[finish]: Auto-generated, don't remove. -->
|
|
53
|
+
|
|
1
54
|
# Contributing to AIA
|
|
2
55
|
|
|
3
56
|
We welcome contributions to AIA! This guide will help you get started with contributing to the project.
|
|
@@ -29,7 +82,7 @@ We welcome contributions to AIA! This guide will help you get started with contr
|
|
|
29
82
|
## Getting Started
|
|
30
83
|
|
|
31
84
|
### Prerequisites
|
|
32
|
-
- Ruby
|
|
85
|
+
- Ruby >= 4.0.0 installed
|
|
33
86
|
- Git for version control
|
|
34
87
|
- Familiarity with AI/LLM concepts
|
|
35
88
|
- Understanding of command-line tools
|
|
@@ -192,7 +245,7 @@ docs/examples/mcp/
|
|
|
192
245
|
1. **Test Your Changes**
|
|
193
246
|
```bash
|
|
194
247
|
rake test
|
|
195
|
-
rake
|
|
248
|
+
rake integration
|
|
196
249
|
```
|
|
197
250
|
|
|
198
251
|
2. **Check Code Quality**
|
|
@@ -200,6 +253,7 @@ docs/examples/mcp/
|
|
|
200
253
|
rubocop
|
|
201
254
|
reek
|
|
202
255
|
```
|
|
256
|
+
Note: `rubocop` and `reek` are not bundled dev dependencies. Install them manually if you wish to run these checks.
|
|
203
257
|
|
|
204
258
|
3. **Update Documentation**
|
|
205
259
|
- Add/update relevant documentation
|