my-ruby-coding-agents 0.1.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 (46) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +33 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +178 -0
  5. data/doc/CHANGELOG.md +33 -0
  6. data/doc/MyRubyCodingAgents/Agent.md +56 -0
  7. data/doc/MyRubyCodingAgents/CLI.md +20 -0
  8. data/doc/MyRubyCodingAgents/Generated.md +30 -0
  9. data/doc/MyRubyCodingAgents/Installer.md +39 -0
  10. data/doc/MyRubyCodingAgents/InstructionFile.md +30 -0
  11. data/doc/MyRubyCodingAgents/Models/Tier.md +33 -0
  12. data/doc/MyRubyCodingAgents/Models.md +38 -0
  13. data/doc/MyRubyCodingAgents/Planner/Entry.md +31 -0
  14. data/doc/MyRubyCodingAgents/Planner.md +21 -0
  15. data/doc/MyRubyCodingAgents/Renderers.md +15 -0
  16. data/doc/MyRubyCodingAgents/Templates.md +35 -0
  17. data/doc/MyRubyCodingAgents.md +25 -0
  18. data/doc/README.md +178 -0
  19. data/exe/my-ruby-coding-agents +6 -0
  20. data/lib/my_ruby_coding_agents/agent.rb +65 -0
  21. data/lib/my_ruby_coding_agents/cli.rb +129 -0
  22. data/lib/my_ruby_coding_agents/generated.rb +49 -0
  23. data/lib/my_ruby_coding_agents/installer.rb +68 -0
  24. data/lib/my_ruby_coding_agents/instruction_file.rb +31 -0
  25. data/lib/my_ruby_coding_agents/models.rb +95 -0
  26. data/lib/my_ruby_coding_agents/planner.rb +78 -0
  27. data/lib/my_ruby_coding_agents/renderers.rb +43 -0
  28. data/lib/my_ruby_coding_agents/templates.rb +30 -0
  29. data/lib/my_ruby_coding_agents/version.rb +6 -0
  30. data/lib/my_ruby_coding_agents.rb +12 -0
  31. data/llms.txt +25 -0
  32. data/templates/agents/api_cli_implementer.md +8 -0
  33. data/templates/agents/code_archaeologist.md +11 -0
  34. data/templates/agents/contract_mapper.md +9 -0
  35. data/templates/agents/evidence_reviewer.md +9 -0
  36. data/templates/agents/pr_readiness_checker.md +11 -0
  37. data/templates/agents/quality_investigator.md +9 -0
  38. data/templates/agents/rails_explorer.md +9 -0
  39. data/templates/agents/rails_implementer.md +8 -0
  40. data/templates/agents/security_mapper.md +9 -0
  41. data/templates/agents/security_reviewer.md +11 -0
  42. data/templates/agents/test_designer.md +9 -0
  43. data/templates/agents/ui_implementer.md +8 -0
  44. data/templates/instructions.md +30 -0
  45. data/templates/models.yml +50 -0
  46. metadata +90 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: e7900d76e661f64e8fa4ccd839c3f2da819e3dcb3fea586027365882d2cd156f
4
+ data.tar.gz: 0c6c14048b6d4ae63496a71f3c868efe0ed2170218ae472352df3f047672c98e
5
+ SHA512:
6
+ metadata.gz: 85f387344d5c2d56b50ffe8c3647555008246f3931f51a0db383d13a0eb4ebadebcdceb77e31b6da5d9d5a612c1d7401c07095f966bceb9cda00e4586529d876
7
+ data.tar.gz: e147c89fc49e78cf379d9beef333b8c25d8682128352dfbd9f574d91ba746a7799775ec0376a4ecef44c95a1b6339c5d8d1020c8af99953fcb5cd2286eef445c
data/CHANGELOG.md ADDED
@@ -0,0 +1,33 @@
1
+ ## [Unreleased]
2
+
3
+ - Add `code_archaeologist`, which researches part of a codebase and keeps
4
+ notes in `docs/archaeology/`, and `pr_readiness_checker`, which checks whether open
5
+ pull requests on a public repository are ready to merge, using `gh`, and
6
+ reports without posting.
7
+ - Add the `review` model tier (Codex gpt-6.1-sol medium, Claude opus medium)
8
+ for `pr_readiness_checker`.
9
+
10
+ ## [0.1.0] - 2026-10-30
11
+
12
+ First release.
13
+
14
+ - Add a CLI that installs ten Ruby and Rails coding agents for Codex
15
+ (`.codex/agents/*.toml`) and Claude Code (`.claude/agents/*.md`) from one
16
+ Markdown template per agent. Agents cover Ruby gems, libraries, and
17
+ command-line tools as well as Rails applications.
18
+ - Add a delegation guide to `AGENTS.md` and `CLAUDE.md` between marker
19
+ comments, so repeated installs replace the block instead of duplicating
20
+ it. Skip `CLAUDE.md` when it imports `AGENTS.md` with an `@AGENTS.md`
21
+ line. Write once when `CLAUDE.md` is a symlink to `AGENTS.md`.
22
+ - Route models through a tier table in `templates/models.yml` (`fast`,
23
+ `investigate`, `implement`, `strong`). Each agent names a tier; the
24
+ guide's model sentence is generated from the table. Claude uses Sonnet
25
+ for routine work and Opus for security review.
26
+ - Stamp every generated agent file with a content hash. `install` refreshes
27
+ unedited files, skips edited ones unless `--force` is given, and supports
28
+ `--codex`, `--claude`, and `--dry-run`.
29
+ - Add `status` to report each file as missing, up to date, outdated, or
30
+ edited. It exits 1 when an install is needed.
31
+ - Add `list` to show each agent's tier, models, efforts, and description.
32
+ - Tell every agent to start sub-agents with a fresh context window.
33
+ - Require Ruby 4.0 or newer. No runtime dependencies.
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2026 Lucian Ghinda
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,178 @@
1
+ # my-ruby-coding-agents
2
+
3
+ Install a shared set of Ruby and Rails coding agents into a project for Codex and
4
+ Claude Code. The gem keeps each agent's instructions in one Markdown template
5
+ and renders the tool-specific files for you.
6
+
7
+ The installer also adds a short delegation guide to `AGENTS.md` and
8
+ `CLAUDE.md`. It uses marker comments so later runs update the guide instead of
9
+ adding duplicates.
10
+
11
+ ## Installation
12
+
13
+ Requires Ruby 4.0 or newer.
14
+
15
+ ```sh
16
+ gem install my-ruby-coding-agents
17
+ ```
18
+
19
+ Or add it to a bundle:
20
+
21
+ ```sh
22
+ bundle add my-ruby-coding-agents
23
+ ```
24
+
25
+ ## Usage
26
+
27
+ Install both Codex and Claude Code agents into the current directory:
28
+
29
+ ```sh
30
+ my-ruby-coding-agents install
31
+ ```
32
+
33
+ Pass a project directory, choose one target, or preview the changes:
34
+
35
+ ```sh
36
+ my-ruby-coding-agents install ./my-app --codex
37
+ my-ruby-coding-agents install ./my-app --claude
38
+ my-ruby-coding-agents install ./my-app --dry-run
39
+ ```
40
+
41
+ `install` writes `.codex/agents/*.toml` and `.claude/agents/*.md`, plus the
42
+ delegation section in `AGENTS.md` and `CLAUDE.md`. The directory defaults to
43
+ `.`. `--codex` and `--claude` limit which tool's files are installed; with
44
+ neither flag, both targets are installed.
45
+
46
+ ### Refreshing after a gem upgrade
47
+
48
+ Each generated agent file has a marker line with a hash of its content: a
49
+ `# my-ruby-coding-agents: <hash>` comment on the first line of the TOML file,
50
+ and an `<!-- my-ruby-coding-agents: <hash> -->` comment right after the
51
+ frontmatter of the Markdown file. Codex and Claude Code ignore these comments.
52
+ The installer uses the hash to tell a file nobody edited from an edited one.
53
+
54
+ Running `install` again applies these rules to each agent file:
55
+
56
+ | File state | Action |
57
+ | --- | --- |
58
+ | Missing | `write` |
59
+ | Generated, not edited, same as the gem | `skip ... (up to date)` |
60
+ | Generated, not edited, gem has a newer version | `update` |
61
+ | Edited by hand, or no marker | `skip ... (edited; use --force to overwrite)` |
62
+
63
+ So after a gem upgrade, a plain `install` refreshes every agent file you did
64
+ not edit and keeps your edits. Use `--force` to overwrite all agent files,
65
+ including edited ones:
66
+
67
+ ```sh
68
+ my-ruby-coding-agents install ./my-app --force
69
+ ```
70
+
71
+ Agent files installed by a version without markers count as edited. Run
72
+ `install --force` once to replace them with marked files.
73
+
74
+ `--dry-run` prints the same lines with a `would ` prefix (`would write`,
75
+ `would update`, `would overwrite`) and writes nothing.
76
+
77
+ The delegation section in `AGENTS.md` and `CLAUDE.md` sits between marker
78
+ comments. `install` adds it when missing and replaces only that block when it
79
+ is out of date; the rest of the file stays as is.
80
+
81
+ ### Checking a project
82
+
83
+ `status` prints one line per file that `install` would manage, with its state:
84
+
85
+ ```sh
86
+ my-ruby-coding-agents status ./my-app
87
+ my-ruby-coding-agents status ./my-app --codex
88
+ ```
89
+
90
+ ```text
91
+ up to date .codex/agents/rails_explorer.toml
92
+ outdated .codex/agents/test_designer.toml
93
+ edited .claude/agents/rails_explorer.md
94
+ missing .claude/agents/ui_implementer.md
95
+ missing block CLAUDE.md
96
+ ```
97
+
98
+ Agent files are `missing`, `up to date`, `outdated` (not edited, but the gem
99
+ has a newer version), or `edited` (edited by hand or without a marker).
100
+ `AGENTS.md` and `CLAUDE.md` are `missing block`, `up to date`, or `outdated`.
101
+ `status` exits with 0 when everything is up to date and 1 otherwise, so you
102
+ can use it in CI.
103
+
104
+ ### CLAUDE.md that imports AGENTS.md
105
+
106
+ Claude Code reads a line `@AGENTS.md` in `CLAUDE.md` as an import of
107
+ `AGENTS.md`. When `CLAUDE.md` has a line that is exactly `@AGENTS.md`
108
+ (surrounding spaces are fine), the installer does not add the block to
109
+ `CLAUDE.md`, since Claude Code already gets it through the import:
110
+
111
+ - With both targets (or with `--codex` too), it writes the block to
112
+ `AGENTS.md` and reports `skip CLAUDE.md (imports AGENTS.md)`.
113
+ - With only `--claude`, it writes the block to `AGENTS.md` instead and
114
+ reports `write AGENTS.md (imported by CLAUDE.md)`.
115
+
116
+ A linked `CLAUDE.md` that points to `AGENTS.md` is also written only once.
117
+
118
+ List the included agents with their tier, models, and efforts:
119
+
120
+ ```sh
121
+ my-ruby-coding-agents list
122
+ ```
123
+
124
+ Each line shows the agent name, tier, Codex model and effort, Claude model and
125
+ effort, and description:
126
+
127
+ ```text
128
+ rails_explorer | fast | Codex: gpt-6-luna (low) | Claude: sonnet (low) | Trace a Ruby workflow ...
129
+ ```
130
+
131
+ The twelve agents are `rails_explorer`, `contract_mapper`, `test_designer`,
132
+ `rails_implementer`, `api_cli_implementer`, `evidence_reviewer`,
133
+ `quality_investigator`, `ui_implementer`, `security_mapper`,
134
+ `security_reviewer`, `code_archaeologist`, and `pr_readiness_checker`.
135
+
136
+ `code_archaeologist` researches how and why part of the code works and writes
137
+ what it finds into `docs/archaeology/`, one note per topic plus an index. On
138
+ later runs it re-checks existing notes against the code and updates or marks
139
+ them stale instead of adding duplicates. Its tool list includes `Write` and
140
+ `Edit`, so the folder limit is an instruction, not a fence. Add a permission
141
+ rule in your tool's settings if you want to enforce it.
142
+
143
+ `pr_readiness_checker` uses the `gh` CLI to read open pull requests on a public
144
+ repository and reports which are ready to merge, which need changes from the
145
+ contributor, and which need a decision from you. It never merges, labels, or
146
+ posts comments. Run it from a checkout where `gh auth status` succeeds.
147
+
148
+ Use the generated delegation guide to choose a focused agent for independent
149
+ work. Handle small, coupled tasks yourself; parallelize independent bounded
150
+ tasks when the benefit outweighs coordination and token costs. Implementers
151
+ may add tests for their changes, with independent review for consequential
152
+ work. The names `rails_explorer` and `rails_implementer` also cover standalone
153
+ Ruby projects; the fleet keeps the same names across projects.
154
+
155
+ Models come from a tier table in `templates/models.yml`. Each tier (`fast`,
156
+ `investigate`, `implement`, `strong`, `review`) sets a model and reasoning effort for
157
+ Codex and for Claude, and each agent template names one tier with `tier:`.
158
+ Edit `templates/models.yml` to change routing; it is the one place model names
159
+ live. The installer builds the model sentence in the delegation guide from the
160
+ same table, so the guide, the agent files, and `list` always agree.
161
+
162
+ Model assignments are starting points, not benchmark-proven rankings. The lead
163
+ narrows ambiguous or unsuccessful tasks or uses a stronger available model;
164
+ there is no automatic model router.
165
+
166
+ ## Development
167
+
168
+ After checking out the repository, run `bin/setup`, then `bundle exec rake` to
169
+ run the tests and RuboCop. `bundle exec rake docs` regenerates the Markdown API
170
+ docs in `doc/` and `llms.txt`; both ship inside the gem, so commit them.
171
+ `bin/prepare_release` runs the whole gate and builds the gem into `pkg/`.
172
+ `bundle exec rake branchproof` runs the tests under
173
+ [Branchproof](https://github.com/lucianghinda/branchproof) and lists decisions
174
+ in `lib/` that the tests do not fully exercise. CI runs the same analysis.
175
+
176
+ ## License
177
+
178
+ Released under the MIT License. See [LICENSE.txt](LICENSE.txt).
data/doc/CHANGELOG.md ADDED
@@ -0,0 +1,33 @@
1
+ ## [Unreleased]
2
+
3
+ - Add `code_archaeologist`, which researches part of a codebase and keeps
4
+ notes in `docs/archaeology/`, and `pr_readiness_checker`, which checks whether open
5
+ pull requests on a public repository are ready to merge, using `gh`, and
6
+ reports without posting.
7
+ - Add the `review` model tier (Codex gpt-6.1-sol medium, Claude opus medium)
8
+ for `pr_readiness_checker`.
9
+
10
+ ## [0.1.0] - 2026-10-30
11
+
12
+ First release.
13
+
14
+ - Add a CLI that installs ten Ruby and Rails coding agents for Codex
15
+ (`.codex/agents/*.toml`) and Claude Code (`.claude/agents/*.md`) from one
16
+ Markdown template per agent. Agents cover Ruby gems, libraries, and
17
+ command-line tools as well as Rails applications.
18
+ - Add a delegation guide to `AGENTS.md` and `CLAUDE.md` between marker
19
+ comments, so repeated installs replace the block instead of duplicating
20
+ it. Skip `CLAUDE.md` when it imports `AGENTS.md` with an `@AGENTS.md`
21
+ line. Write once when `CLAUDE.md` is a symlink to `AGENTS.md`.
22
+ - Route models through a tier table in `templates/models.yml` (`fast`,
23
+ `investigate`, `implement`, `strong`). Each agent names a tier; the
24
+ guide's model sentence is generated from the table. Claude uses Sonnet
25
+ for routine work and Opus for security review.
26
+ - Stamp every generated agent file with a content hash. `install` refreshes
27
+ unedited files, skips edited ones unless `--force` is given, and supports
28
+ `--codex`, `--claude`, and `--dry-run`.
29
+ - Add `status` to report each file as missing, up to date, outdated, or
30
+ edited. It exits 1 when an install is needed.
31
+ - Add `list` to show each agent's tier, models, efforts, and description.
32
+ - Tell every agent to start sub-agents with a fresh context window.
33
+ - Require Ruby 4.0 or newer. No runtime dependencies.
@@ -0,0 +1,56 @@
1
+ # Class MyRubyCodingAgents::Agent <a id="class-MyRubyCodingAgents-Agent"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Inherits** | Object |
6
+ | **Defined in** | lib/my_ruby_coding_agents/agent.rb |
7
+
8
+ Parsed metadata and shared instruction body for one agent template. Models and
9
+ efforts come from the agent's tier in the Models table.
10
+
11
+ ## Constants
12
+ ### `FIELDS` <a id="constant-FIELDS"></a> <a id="FIELDS-constant"></a>
13
+ Not documented.
14
+
15
+ ### `REQUIRED_FIELDS` <a id="constant-REQUIRED_FIELDS"></a> <a id="REQUIRED_FIELDS-constant"></a>
16
+ Not documented.
17
+
18
+ ## Attributes
19
+ ### `body` [R] <a id="attribute-i-body"></a> <a id="body-instance_method"></a>
20
+ Returns the value of attribute body.
21
+
22
+ ### `description` [R] <a id="attribute-i-description"></a> <a id="description-instance_method"></a>
23
+ Returns the value of attribute description.
24
+
25
+ ### `name` [R] <a id="attribute-i-name"></a> <a id="name-instance_method"></a>
26
+ Returns the value of attribute name.
27
+
28
+ ### `tier` [R] <a id="attribute-i-tier"></a> <a id="tier-instance_method"></a>
29
+ Returns the value of attribute tier.
30
+
31
+ ### `tools` [R] <a id="attribute-i-tools"></a> <a id="tools-instance_method"></a>
32
+ Returns the value of attribute tools.
33
+
34
+ ## Public Class Methods
35
+ ### `load(path, models:)` <a id="method-c-load"></a> <a id="load-class_method"></a>
36
+ Not documented.
37
+
38
+ ### `parse(source, models:)` <a id="method-c-parse"></a> <a id="parse-class_method"></a>
39
+ Not documented.
40
+
41
+ ## Public Instance Methods
42
+ ### `claude_effort()` <a id="method-i-claude_effort"></a> <a id="claude_effort-instance_method"></a>
43
+ Not documented.
44
+
45
+ ### `claude_model()` <a id="method-i-claude_model"></a> <a id="claude_model-instance_method"></a>
46
+ Not documented.
47
+
48
+ ### `codex_effort()` <a id="method-i-codex_effort"></a> <a id="codex_effort-instance_method"></a>
49
+ Not documented.
50
+
51
+ ### `codex_model()` <a id="method-i-codex_model"></a> <a id="codex_model-instance_method"></a>
52
+ Not documented.
53
+
54
+ ### `initialize(name:, description:, tier:, tools:, body:)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
55
+ tier is a Models::Tier.
56
+ - **@return** [Agent] a new instance of Agent
@@ -0,0 +1,20 @@
1
+ # Class MyRubyCodingAgents::CLI <a id="class-MyRubyCodingAgents-CLI"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Inherits** | Object |
6
+ | **Defined in** | lib/my_ruby_coding_agents/cli.rb |
7
+
8
+ Handles the command line interface for installing, checking, and listing
9
+ agents.
10
+
11
+ ## Public Class Methods
12
+ ### `run(argv, out: $stdout, err: $stderr)` <a id="method-c-run"></a> <a id="run-class_method"></a>
13
+ Not documented.
14
+
15
+ ## Public Instance Methods
16
+ ### `initialize(argv, out:, err:)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
17
+ - **@return** [CLI] a new instance of CLI
18
+
19
+ ### `run()` <a id="method-i-run"></a> <a id="run-instance_method"></a>
20
+ Not documented.
@@ -0,0 +1,30 @@
1
+ # Module MyRubyCodingAgents::Generated <a id="module-MyRubyCodingAgents-Generated"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Defined in** | lib/my_ruby_coding_agents/generated.rb |
6
+
7
+ Marks rendered agent files with a hash of their content, so a later install
8
+ can tell an untouched generated file from one a person edited.
9
+
10
+ ## Constants
11
+ ### `FRONTMATTER` <a id="constant-FRONTMATTER"></a> <a id="FRONTMATTER-constant"></a>
12
+ Not documented.
13
+
14
+ ### `MARKER` <a id="constant-MARKER"></a> <a id="MARKER-constant"></a>
15
+ Not documented.
16
+
17
+ ### `NAME` <a id="constant-NAME"></a> <a id="NAME-constant"></a>
18
+ Not documented.
19
+
20
+ ## Public Class Methods
21
+ ### `digest(content)` <a id="method-c-digest"></a> <a id="digest-class_method"></a>
22
+ Not documented.
23
+
24
+ ### `stamp(content, style:)` <a id="method-c-stamp"></a> <a id="stamp-class_method"></a>
25
+ Adds the marker line. style is :toml (first line) or :markdown (right after
26
+ the frontmatter). The hash covers the content without the marker line.
27
+
28
+ ### `status(existing_content)` <a id="method-c-status"></a> <a id="status-class_method"></a>
29
+ :unmodified when the marker hash matches the rest of the file, :modified when
30
+ it does not, :foreign when there is no marker.
@@ -0,0 +1,39 @@
1
+ # Class MyRubyCodingAgents::Installer <a id="class-MyRubyCodingAgents-Installer"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Inherits** | Object |
6
+ | **Defined in** | lib/my_ruby_coding_agents/installer.rb |
7
+
8
+ Writes planned files and reports the state of each one.
9
+
10
+ ## Constants
11
+ ### `CLEAN_STATES` <a id="constant-CLEAN_STATES"></a> <a id="CLEAN_STATES-constant"></a>
12
+ Not documented.
13
+
14
+ ### `END_MARKER` <a id="constant-END_MARKER"></a> <a id="END_MARKER-constant"></a>
15
+ Not documented.
16
+
17
+ ### `SKIP_REASONS` <a id="constant-SKIP_REASONS"></a> <a id="SKIP_REASONS-constant"></a>
18
+ Not documented.
19
+
20
+ ### `START_MARKER` <a id="constant-START_MARKER"></a> <a id="START_MARKER-constant"></a>
21
+ Not documented.
22
+
23
+ ### `STATUS_LABELS` <a id="constant-STATUS_LABELS"></a> <a id="STATUS_LABELS-constant"></a>
24
+ Not documented.
25
+
26
+ ### `WRITE_VERBS` <a id="constant-WRITE_VERBS"></a> <a id="WRITE_VERBS-constant"></a>
27
+ Not documented.
28
+
29
+ ## Public Instance Methods
30
+ ### `initialize(dir:, agents:, instructions:, targets:)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
31
+ - **@return** [Installer] a new instance of Installer
32
+
33
+ ### `install(out:, force: false, dry_run: false)` <a id="method-i-install"></a> <a id="install-instance_method"></a>
34
+ Writes missing and outdated files. Edited agent files are kept unless force is
35
+ true. Returns the number of planned files.
36
+
37
+ ### `status(out:)` <a id="method-i-status"></a> <a id="status-instance_method"></a>
38
+ Prints one state line per planned file. Returns true when nothing needs an
39
+ install.
@@ -0,0 +1,30 @@
1
+ # Module MyRubyCodingAgents::InstructionFile <a id="module-MyRubyCodingAgents-InstructionFile"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Defined in** | lib/my_ruby_coding_agents/instruction_file.rb |
6
+
7
+ Builds AGENTS.md and CLAUDE.md content with the managed delegation block.
8
+
9
+ ## Constants
10
+ ### `BLOCK` <a id="constant-BLOCK"></a> <a id="BLOCK-constant"></a>
11
+ Not documented.
12
+
13
+ ### `END_MARKER` <a id="constant-END_MARKER"></a> <a id="END_MARKER-constant"></a>
14
+ Not documented.
15
+
16
+ ### `IMPORT` <a id="constant-IMPORT"></a> <a id="IMPORT-constant"></a>
17
+ A CLAUDE.md line that imports AGENTS.md in Claude Code.
18
+
19
+ ### `START_MARKER` <a id="constant-START_MARKER"></a> <a id="START_MARKER-constant"></a>
20
+ Not documented.
21
+
22
+ ## Public Class Methods
23
+ ### `block?(content)` <a id="method-c-block-3F"></a> <a id="block?-class_method"></a>
24
+ - **@return** [Boolean]
25
+
26
+ ### `imports_agents?(path)` <a id="method-c-imports_agents-3F"></a> <a id="imports_agents?-class_method"></a>
27
+ - **@return** [Boolean]
28
+
29
+ ### `render(existing, instructions)` <a id="method-c-render"></a> <a id="render-class_method"></a>
30
+ Replaces the block in existing content, or appends it. existing may be nil.
@@ -0,0 +1,33 @@
1
+ # Class MyRubyCodingAgents::Models::Tier <a id="class-MyRubyCodingAgents-Models-Tier"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Inherits** | Data |
6
+ | **Defined in** | lib/my_ruby_coding_agents/models.rb |
7
+
8
+ One resolved tier.
9
+
10
+ ## Attributes
11
+ ### `claude_effort` [R] <a id="attribute-i-claude_effort"></a> <a id="claude_effort-instance_method"></a>
12
+ Returns the value of attribute claude_effort
13
+ - **@return** [Object] the current value of claude_effort
14
+
15
+ ### `claude_model` [R] <a id="attribute-i-claude_model"></a> <a id="claude_model-instance_method"></a>
16
+ Returns the value of attribute claude_model
17
+ - **@return** [Object] the current value of claude_model
18
+
19
+ ### `codex_effort` [R] <a id="attribute-i-codex_effort"></a> <a id="codex_effort-instance_method"></a>
20
+ Returns the value of attribute codex_effort
21
+ - **@return** [Object] the current value of codex_effort
22
+
23
+ ### `codex_model` [R] <a id="attribute-i-codex_model"></a> <a id="codex_model-instance_method"></a>
24
+ Returns the value of attribute codex_model
25
+ - **@return** [Object] the current value of codex_model
26
+
27
+ ### `name` [R] <a id="attribute-i-name"></a> <a id="name-instance_method"></a>
28
+ Returns the value of attribute name
29
+ - **@return** [Object] the current value of name
30
+
31
+ ### `summary` [R] <a id="attribute-i-summary"></a> <a id="summary-instance_method"></a>
32
+ Returns the value of attribute summary
33
+ - **@return** [Object] the current value of summary
@@ -0,0 +1,38 @@
1
+ # Class MyRubyCodingAgents::Models <a id="class-MyRubyCodingAgents-Models"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Inherits** | Object |
6
+ | **Defined in** | lib/my_ruby_coding_agents/models.rb |
7
+
8
+ Model tier table loaded from models.yml. Maps a tier name to the model and
9
+ reasoning effort each tool uses.
10
+
11
+ ## Constants
12
+ ### `TIER_KEYS` <a id="constant-TIER_KEYS"></a> <a id="TIER_KEYS-constant"></a>
13
+ Not documented.
14
+
15
+ ### `TOOL_KEYS` <a id="constant-TOOL_KEYS"></a> <a id="TOOL_KEYS-constant"></a>
16
+ Not documented.
17
+
18
+ ## Public Class Methods
19
+ ### `load(path)` <a id="method-c-load"></a> <a id="load-class_method"></a>
20
+ Not documented.
21
+
22
+ ### `parse(source)` <a id="method-c-parse"></a> <a id="parse-class_method"></a>
23
+ Not documented.
24
+
25
+ ## Public Instance Methods
26
+ ### `fetch(name)` <a id="method-i-fetch"></a> <a id="fetch-instance_method"></a>
27
+ Not documented.
28
+
29
+ ### `initialize(table)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
30
+ - **@raise** [ArgumentError]
31
+ - **@return** [Models] a new instance of Models
32
+
33
+ ### `names()` <a id="method-i-names"></a> <a id="names-instance_method"></a>
34
+ Tier names in file order.
35
+
36
+ ### `routing(agents)` <a id="method-i-routing"></a> <a id="routing-instance_method"></a>
37
+ One sentence per used tier: its purpose, models, and agents. Tiers keep file
38
+ order and agents are sorted by name, so output is stable.
@@ -0,0 +1,31 @@
1
+ # Class MyRubyCodingAgents::Planner::Entry <a id="class-MyRubyCodingAgents-Planner-Entry"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Inherits** | Data |
6
+ | **Defined in** | lib/my_ruby_coding_agents/planner.rb |
7
+
8
+ state is one of :missing, :up_to_date, :outdated, :edited (agent files),
9
+ :missing_block, :up_to_date, :outdated (instruction files), or :imported
10
+ (CLAUDE.md that imports AGENTS.md). note is extra text for output.
11
+
12
+ ## Attributes
13
+ ### `content` [R] <a id="attribute-i-content"></a> <a id="content-instance_method"></a>
14
+ Returns the value of attribute content
15
+ - **@return** [Object] the current value of content
16
+
17
+ ### `kind` [R] <a id="attribute-i-kind"></a> <a id="kind-instance_method"></a>
18
+ Returns the value of attribute kind
19
+ - **@return** [Object] the current value of kind
20
+
21
+ ### `note` [R] <a id="attribute-i-note"></a> <a id="note-instance_method"></a>
22
+ Returns the value of attribute note
23
+ - **@return** [Object] the current value of note
24
+
25
+ ### `path` [R] <a id="attribute-i-path"></a> <a id="path-instance_method"></a>
26
+ Returns the value of attribute path
27
+ - **@return** [Object] the current value of path
28
+
29
+ ### `state` [R] <a id="attribute-i-state"></a> <a id="state-instance_method"></a>
30
+ Returns the value of attribute state
31
+ - **@return** [Object] the current value of state
@@ -0,0 +1,21 @@
1
+ # Class MyRubyCodingAgents::Planner <a id="class-MyRubyCodingAgents-Planner"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Inherits** | Object |
6
+ | **Defined in** | lib/my_ruby_coding_agents/planner.rb |
7
+
8
+ Works out which files an install would touch and the state of each one.
9
+ Install and status share this plan.
10
+
11
+ ## Constants
12
+ ### `TARGETS` <a id="constant-TARGETS"></a> <a id="TARGETS-constant"></a>
13
+ Not documented.
14
+
15
+ ## Public Instance Methods
16
+ ### `entries()` <a id="method-i-entries"></a> <a id="entries-instance_method"></a>
17
+ Entries in install order. A linked CLAUDE.md and AGENTS.md refer to the same
18
+ file, so only the first entry for a real path is kept.
19
+
20
+ ### `initialize(root:, agents:, instructions:, targets:)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
21
+ - **@return** [Planner] a new instance of Planner
@@ -0,0 +1,15 @@
1
+ # Module MyRubyCodingAgents::Renderers <a id="module-MyRubyCodingAgents-Renderers"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Defined in** | lib/my_ruby_coding_agents/renderers.rb |
6
+
7
+ Convert canonical agent definitions to tool-specific file formats. Each file
8
+ carries a Generated marker.
9
+
10
+ ## Public Class Methods
11
+ ### `claude(agent)` <a id="method-c-claude"></a> <a id="claude-class_method"></a>
12
+ Not documented.
13
+
14
+ ### `codex(agent)` <a id="method-c-codex"></a> <a id="codex-class_method"></a>
15
+ Not documented.
@@ -0,0 +1,35 @@
1
+ # Module MyRubyCodingAgents::Templates <a id="module-MyRubyCodingAgents-Templates"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Defined in** | lib/my_ruby_coding_agents/templates.rb |
6
+
7
+ Loads the bundled templates: the model tier table, the agents, and the
8
+ delegation instructions.
9
+
10
+ ## Constants
11
+ ### `AGENTS_DIR` <a id="constant-AGENTS_DIR"></a> <a id="AGENTS_DIR-constant"></a>
12
+ Not documented.
13
+
14
+ ### `INSTRUCTIONS_PATH` <a id="constant-INSTRUCTIONS_PATH"></a> <a id="INSTRUCTIONS_PATH-constant"></a>
15
+ Not documented.
16
+
17
+ ### `MODELS_PATH` <a id="constant-MODELS_PATH"></a> <a id="MODELS_PATH-constant"></a>
18
+ Not documented.
19
+
20
+ ### `ROOT` <a id="constant-ROOT"></a> <a id="ROOT-constant"></a>
21
+ Not documented.
22
+
23
+ ### `ROUTING_PLACEHOLDER` <a id="constant-ROUTING_PLACEHOLDER"></a> <a id="ROUTING_PLACEHOLDER-constant"></a>
24
+ Not documented.
25
+
26
+ ## Public Class Methods
27
+ ### `agents(models)` <a id="method-c-agents"></a> <a id="agents-class_method"></a>
28
+ Agents sorted by file name, with models resolved from their tiers.
29
+
30
+ ### `instructions(models, agents)` <a id="method-c-instructions"></a> <a id="instructions-class_method"></a>
31
+ Instructions with the routing placeholder replaced by a sentence built from
32
+ the tier table and the agents' tiers.
33
+
34
+ ### `models()` <a id="method-c-models"></a> <a id="models-class_method"></a>
35
+ Not documented.
@@ -0,0 +1,25 @@
1
+ # Module MyRubyCodingAgents <a id="module-MyRubyCodingAgents"></a>
2
+
3
+ | | |
4
+ | --- | --- |
5
+ | **Defined in** | lib/my_ruby_coding_agents/cli.rb, lib/my_ruby_coding_agents/agent.rb, lib/my_ruby_coding_agents/models.rb, lib/my_ruby_coding_agents/planner.rb, lib/my_ruby_coding_agents/version.rb, lib/my_ruby_coding_agents/generated.rb, lib/my_ruby_coding_agents/installer.rb, lib/my_ruby_coding_agents/renderers.rb, lib/my_ruby_coding_agents/templates.rb, lib/my_ruby_coding_agents/instruction_file.rb |
6
+
7
+ ## Constants
8
+ ### `VERSION` <a id="constant-VERSION"></a> <a id="VERSION-constant"></a>
9
+ Gem version. Bump before each release and add a CHANGELOG entry.
10
+
11
+ # Documentation
12
+
13
+ - [CHANGELOG.md](CHANGELOG.md)
14
+ - [MyRubyCodingAgents/Agent.md](MyRubyCodingAgents/Agent.md)
15
+ - [MyRubyCodingAgents/CLI.md](MyRubyCodingAgents/CLI.md)
16
+ - [MyRubyCodingAgents/Generated.md](MyRubyCodingAgents/Generated.md)
17
+ - [MyRubyCodingAgents/Installer.md](MyRubyCodingAgents/Installer.md)
18
+ - [MyRubyCodingAgents/InstructionFile.md](MyRubyCodingAgents/InstructionFile.md)
19
+ - [MyRubyCodingAgents/Models/Tier.md](MyRubyCodingAgents/Models/Tier.md)
20
+ - [MyRubyCodingAgents/Models.md](MyRubyCodingAgents/Models.md)
21
+ - [MyRubyCodingAgents/Planner/Entry.md](MyRubyCodingAgents/Planner/Entry.md)
22
+ - [MyRubyCodingAgents/Planner.md](MyRubyCodingAgents/Planner.md)
23
+ - [MyRubyCodingAgents/Renderers.md](MyRubyCodingAgents/Renderers.md)
24
+ - [MyRubyCodingAgents/Templates.md](MyRubyCodingAgents/Templates.md)
25
+ - [README.md](README.md)