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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +33 -0
- data/LICENSE.txt +21 -0
- data/README.md +178 -0
- data/doc/CHANGELOG.md +33 -0
- data/doc/MyRubyCodingAgents/Agent.md +56 -0
- data/doc/MyRubyCodingAgents/CLI.md +20 -0
- data/doc/MyRubyCodingAgents/Generated.md +30 -0
- data/doc/MyRubyCodingAgents/Installer.md +39 -0
- data/doc/MyRubyCodingAgents/InstructionFile.md +30 -0
- data/doc/MyRubyCodingAgents/Models/Tier.md +33 -0
- data/doc/MyRubyCodingAgents/Models.md +38 -0
- data/doc/MyRubyCodingAgents/Planner/Entry.md +31 -0
- data/doc/MyRubyCodingAgents/Planner.md +21 -0
- data/doc/MyRubyCodingAgents/Renderers.md +15 -0
- data/doc/MyRubyCodingAgents/Templates.md +35 -0
- data/doc/MyRubyCodingAgents.md +25 -0
- data/doc/README.md +178 -0
- data/exe/my-ruby-coding-agents +6 -0
- data/lib/my_ruby_coding_agents/agent.rb +65 -0
- data/lib/my_ruby_coding_agents/cli.rb +129 -0
- data/lib/my_ruby_coding_agents/generated.rb +49 -0
- data/lib/my_ruby_coding_agents/installer.rb +68 -0
- data/lib/my_ruby_coding_agents/instruction_file.rb +31 -0
- data/lib/my_ruby_coding_agents/models.rb +95 -0
- data/lib/my_ruby_coding_agents/planner.rb +78 -0
- data/lib/my_ruby_coding_agents/renderers.rb +43 -0
- data/lib/my_ruby_coding_agents/templates.rb +30 -0
- data/lib/my_ruby_coding_agents/version.rb +6 -0
- data/lib/my_ruby_coding_agents.rb +12 -0
- data/llms.txt +25 -0
- data/templates/agents/api_cli_implementer.md +8 -0
- data/templates/agents/code_archaeologist.md +11 -0
- data/templates/agents/contract_mapper.md +9 -0
- data/templates/agents/evidence_reviewer.md +9 -0
- data/templates/agents/pr_readiness_checker.md +11 -0
- data/templates/agents/quality_investigator.md +9 -0
- data/templates/agents/rails_explorer.md +9 -0
- data/templates/agents/rails_implementer.md +8 -0
- data/templates/agents/security_mapper.md +9 -0
- data/templates/agents/security_reviewer.md +11 -0
- data/templates/agents/test_designer.md +9 -0
- data/templates/agents/ui_implementer.md +8 -0
- data/templates/instructions.md +30 -0
- data/templates/models.yml +50 -0
- 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)
|