cc-codeconductor 0.2.6 → 0.2.8

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 (31) hide show
  1. package/README.md +18 -1
  2. package/dist/index.js +782 -24
  3. package/package.json +2 -1
  4. package/presets/opencode/README.md +7 -7
  5. package/presets/opencode/agents/architect.md +0 -1
  6. package/presets/opencode/agents/docs.md +0 -1
  7. package/presets/opencode/agents/implementer.md +0 -1
  8. package/presets/opencode/agents/orchestrator.md +0 -1
  9. package/presets/opencode/agents/repo-explorer.md +0 -1
  10. package/presets/opencode/agents/reviewer.md +0 -1
  11. package/presets/opencode/agents/task-coach.md +0 -1
  12. package/presets/opencode/agents/tester.md +0 -1
  13. package/presets/opencode/opencode.jsonc +2 -11
  14. package/presets/opencode/prompts/v0.2.0/docs.md +1 -1
  15. package/presets/opencode/prompts/v0.2.0/repo-explorer.md +1 -1
  16. package/presets/opencode/prompts/v0.2.0/reviewer.md +1 -1
  17. package/presets/opencode/prompts/v0.2.0/task-coach.md +1 -1
  18. package/presets/seo-hotel/commands/cc-seo-audit.md +87 -0
  19. package/presets/seo-hotel/skills/astro-seo/SKILL.md +245 -0
  20. package/presets/seo-hotel/skills/geo-readiness/SKILL.md +221 -0
  21. package/presets/seo-hotel/skills/off-page/SKILL.md +201 -0
  22. package/presets/seo-hotel/skills/schema-validator/SKILL.md +325 -0
  23. package/presets/seo-hotel/skills/seo-audit/SKILL.md +191 -0
  24. package/src/presets/manifests/agy.yml +9 -0
  25. package/src/presets/manifests/opencode.yml +2 -1
  26. package/src/presets/models/agy.yml +59 -0
  27. package/src/presets/models/claude.yml +3 -3
  28. package/src/presets/models/codex.yml +3 -3
  29. package/src/presets/models/cursor.yml +3 -3
  30. package/src/presets/models/gemini.yml +3 -3
  31. package/src/presets/models/opencode.yml +11 -46
@@ -0,0 +1,325 @@
1
+ ---
2
+ id: schema-validator
3
+ version: 1.0.0
4
+ name: Schema.org Validator
5
+ description: >
6
+ Validates Schema.org structured data (JSON-LD, Microdata, RDFa) on hotel and hospitality websites.
7
+ Supports single URL validation via --url and sitemap-scoped batch validation via --sitemap.
8
+ Only crawls URLs explicitly listed in the sitemap — never follows external links.
9
+
10
+ user-invokable: true
11
+ license: MIT
12
+ metadata:
13
+ author: codeconductor
14
+ category: seo
15
+
16
+ compatibility:
17
+ tools: [claude, codex, gemini, opencode]
18
+ stacks:
19
+ languages: []
20
+ frameworks: [astro, nextjs, django, spring]
21
+
22
+ risk:
23
+ level: medium
24
+ can_execute_shell: true
25
+ can_modify_files: false
26
+ requires_network: true
27
+
28
+ inputs:
29
+ - name: url
30
+ type: string
31
+ required: false
32
+ description: Single URL to validate
33
+ - name: sitemap
34
+ type: string
35
+ required: false
36
+ description: Remote sitemap XML URL. Only URLs listed here will be crawled.
37
+
38
+ outputs:
39
+ - name: report
40
+ type: json
41
+ description: Structured validation report with pass/fail/warning per schema type
42
+
43
+ quality:
44
+ reviewed_by: codeconductor-core
45
+ version: 0.3.0
46
+ ---
47
+
48
+ # Schema.org Validator
49
+
50
+ ## Purpose
51
+
52
+ Validate Schema.org structured data on hotel and hospitality websites. Detect missing,
53
+ invalid, or incomplete markup and generate actionable remediation guidance.
54
+
55
+ ## Invocation
56
+
57
+ ```bash
58
+ # Single URL
59
+ codeconductor seo validate-schema --url https://www.example.com
60
+
61
+ # Sitemap-scoped (batch)
62
+ codeconductor seo validate-schema --sitemap https://www.example.com/sitemap-0.xml
63
+
64
+ # JSON output for CI/CD
65
+ codeconductor seo validate-schema --sitemap https://www.example.com/sitemap-0.xml --format json
66
+
67
+ # Fail on errors (CI/CD exit code)
68
+ codeconductor seo validate-schema --sitemap https://www.example.com/sitemap-0.xml --fail-on error
69
+ ```
70
+
71
+ ## Hard Rules
72
+
73
+ 1. **Sitemap-scoped only.** When `--sitemap` is provided, fetch the XML, extract `<loc>` entries,
74
+ and validate ONLY those URLs. Never follow hyperlinks found on those pages.
75
+ 2. **No external crawling.** URLs not present in the sitemap are excluded. Period.
76
+ 3. **GET only.** All HTTP requests must be GET. No POST, PUT, DELETE.
77
+ 4. **No auth headers.** Never send cookies, auth tokens, or API keys in requests.
78
+ 5. **Timeout.** Each HTTP request must timeout after 10 seconds.
79
+ 6. **Rate limiting.** Default 500ms delay between requests. Configurable via `--delay`.
80
+ 7. **SSRF prevention.** Reject URLs with private IP ranges (10.x, 172.16-31.x, 192.168.x, 127.x, ::1).
81
+ Reject non-HTTP(S) schemes.
82
+ 8. **No redirects by default.** Do not follow HTTP redirects unless `--follow-redirects` is passed.
83
+
84
+ ## Sitemap Parsing
85
+
86
+ ### Supported formats
87
+
88
+ - Standard XML Sitemap (`<urlset>` with `<loc>` entries)
89
+ - Sitemap Index (`<sitemapindex>` with nested `<sitemap><loc>` entries)
90
+
91
+ ### Parsing rules
92
+
93
+ 1. Fetch the sitemap URL via GET
94
+ 2. Parse XML response
95
+ 3. If `<sitemapindex>`, recursively fetch each child sitemap (max depth: 2)
96
+ 4. Extract all `<loc>` values
97
+ 5. Deduplicate URLs
98
+ 6. Filter: only HTTP/HTTPS URLs
99
+ 7. Filter: only URLs on the same domain as the sitemap origin
100
+ 8. Return the final URL list
101
+
102
+ ### Example sitemap fetch
103
+
104
+ ```text
105
+ GET https://www.cantovallarta.com/sitemap-0.xml
106
+ -> Parse <urlset>
107
+ -> Extract: [
108
+ https://www.cantovallarta.com/,
109
+ https://www.cantovallarta.com/rooms,
110
+ https://www.cantovallarta.com/rooms/ocean-suite,
111
+ https://www.cantovallarta.com/dining,
112
+ ...
113
+ ]
114
+ -> Validate each URL's structured data
115
+ ```
116
+
117
+ ## Schema Types to Validate
118
+
119
+ ### Hotel & Hospitality (primary)
120
+
121
+ | Schema Type | Required Properties | Common Issues |
122
+ |------------|-------------------|---------------|
123
+ | `Hotel` | name, address, starRating, image | Missing starRating, incomplete address |
124
+ | `LodgingBusiness` | name, address, checkinTime, checkoutTime | Missing check-in/out times |
125
+ | `HotelRoom` | name, occupancy, bed | Missing occupancy details |
126
+ | `LocalBusiness` | name, address, telephone, openingHours | Missing telephone or hours |
127
+ | `Resort` | name, address, amenityFeature | Missing amenities |
128
+
129
+ ### Supporting Types (secondary)
130
+
131
+ | Schema Type | Required Properties | Common Issues |
132
+ |------------|-------------------|---------------|
133
+ | `BreadcrumbList` | itemListElement (with position, name, item) | Missing position, broken item URLs |
134
+ | `FAQPage` | mainEntity (Question + acceptedAnswer) | Missing acceptedAnswer |
135
+ | `Review` | author, reviewBody, reviewRating | Missing author or rating |
136
+ | `AggregateRating` | ratingValue, reviewCount, bestRating | Missing reviewCount |
137
+ | `Organization` | name, url, logo | Missing logo |
138
+ | `WebSite` | name, url, potentialAction (SearchAction) | Missing SearchAction |
139
+ | `ImageObject` | contentUrl, caption | Missing caption for accessibility |
140
+
141
+ ### Hotel-specific checks
142
+
143
+ - `starRating` must be 1-5
144
+ - `priceRange` should use standard format (e.g., "$$", "$$$")
145
+ - `address` must include `addressCountry` for international hotels
146
+ - `geo` coordinates should be present and within valid ranges
147
+ - `amenityFeature` should use `LocationFeatureSpecification` with proper `name` values
148
+ - `image` must be absolute URLs, not relative paths
149
+
150
+ ## Validation Logic
151
+
152
+ ### Per URL
153
+
154
+ 1. Fetch the page HTML via GET
155
+ 2. Extract all `<script type="application/ld+json">` blocks (JSON-LD)
156
+ 3. Extract Microdata attributes (`itemscope`, `itemtype`, `itemprop`)
157
+ 4. For each structured data block:
158
+ a. Parse JSON (for JSON-LD)
159
+ b. Identify `@type`
160
+ c. Validate required properties for that type
161
+ d. Validate property value formats
162
+ e. Check for common anti-patterns
163
+ 5. Score: PASS / WARNING / FAIL per type
164
+ 6. Aggregate into URL-level score
165
+
166
+ ### Scoring
167
+
168
+ | Status | Meaning |
169
+ |--------|---------|
170
+ | PASS | All required properties present and valid |
171
+ | WARNING | Optional properties missing or suboptimal |
172
+ | FAIL | Required properties missing or invalid |
173
+ | NONE | No structured data found for this type |
174
+
175
+ ### Anti-patterns to detect
176
+
177
+ - Duplicate `@type` on same page (e.g., two `Hotel` blocks)
178
+ - `@context` not set to `https://schema.org`
179
+ - Nested types without proper `@id` references
180
+ - Empty string values instead of omitting optional properties
181
+ - `description` that is identical to `name`
182
+ - Images without `width` and `height` (affects CLS and rich results)
183
+
184
+ ## Output Format
185
+
186
+ ### CLI (default)
187
+
188
+ ```text
189
+ Schema.org Validation Report
190
+ ============================
191
+ Source: --sitemap https://www.cantovallarta.com/sitemap-0.xml
192
+ URLs validated: 24
193
+ Timestamp: 2026-05-29T06:40:00Z
194
+
195
+ --- https://www.cantovallarta.com/ ---
196
+ Hotel: PASS
197
+ BreadcrumbList: WARNING — missing position on item 2
198
+ Organization: PASS
199
+ WebSite: FAIL — missing potentialAction (SearchAction)
200
+
201
+ --- https://www.cantovallarta.com/rooms/ocean-suite ---
202
+ HotelRoom: PASS
203
+ AggregateRating: WARNING — missing reviewCount
204
+ BreadcrumbList: PASS
205
+ Review: NONE — no review markup found
206
+
207
+ --- Summary ---
208
+ Total URLs: 24
209
+ PASS: 18 (75%)
210
+ WARNING: 4 (17%)
211
+ FAIL: 2 (8%)
212
+ ```
213
+
214
+ ### JSON (--format json)
215
+
216
+ ```json
217
+ {
218
+ "source": "https://www.cantovallarta.com/sitemap-0.xml",
219
+ "timestamp": "2026-05-29T06:40:00Z",
220
+ "urlsValidated": 24,
221
+ "results": [
222
+ {
223
+ "url": "https://www.cantovallarta.com/",
224
+ "schemas": [
225
+ {
226
+ "type": "Hotel",
227
+ "status": "pass",
228
+ "issues": []
229
+ },
230
+ {
231
+ "type": "BreadcrumbList",
232
+ "status": "warning",
233
+ "issues": [
234
+ {
235
+ "severity": "warning",
236
+ "message": "missing position on item 2",
237
+ "property": "itemListElement[1].position",
238
+ "fix": "Add \"position\": 2 to the second breadcrumb item"
239
+ }
240
+ ]
241
+ }
242
+ ]
243
+ }
244
+ ],
245
+ "summary": {
246
+ "total": 24,
247
+ "pass": 18,
248
+ "warning": 4,
249
+ "fail": 2
250
+ }
251
+ }
252
+ ```
253
+
254
+ ## Exit Codes
255
+
256
+ | Code | Meaning |
257
+ |------|---------|
258
+ | 0 | All URLs passed (no FAIL) |
259
+ | 1 | At least one FAIL found |
260
+ | 2 | Warnings only, no FAIL |
261
+ | 3 | Network or parsing error |
262
+
263
+ Use `--fail-on error` to exit 1 only on FAIL, or `--fail-on warning` to exit 1 on WARNING or FAIL.
264
+
265
+ ## Remediation Guidance
266
+
267
+ For each FAIL or WARNING, the report must include:
268
+
269
+ 1. **What is wrong** — the specific missing or invalid property
270
+ 2. **Why it matters** — impact on rich results, AI search, or SEO ranking
271
+ 3. **How to fix** — exact JSON-LD snippet to add or correct
272
+
273
+ ### Example remediation
274
+
275
+ ```text
276
+ FAIL: WebSite missing potentialAction (SearchAction)
277
+
278
+ Why: Google uses SearchAction to display a sitelinks search box in SERPs.
279
+ Without it, your homepage misses this enhanced result.
280
+
281
+ Fix: Add this to your WebSite JSON-LD:
282
+
283
+ {
284
+ "@type": "WebSite",
285
+ "name": "Canto Vallarta",
286
+ "url": "https://www.cantovallarta.com",
287
+ "potentialAction": {
288
+ "@type": "SearchAction",
289
+ "target": "https://www.cantovallarta.com/search?q={search_term_string}",
290
+ "query-input": "required name=search_term_string"
291
+ }
292
+ }
293
+ ```
294
+
295
+ ## CI/CD Integration
296
+
297
+ ### GitHub Actions
298
+
299
+ ```yaml
300
+ - name: Validate Schema.org
301
+ run: |
302
+ codeconductor seo validate-schema \
303
+ --sitemap https://preview-${{ github.event.pull_request.number }}.example.com/sitemap-0.xml \
304
+ --format json \
305
+ --fail-on error \
306
+ --output schema-report.json
307
+
308
+ - name: Comment PR with results
309
+ if: failure()
310
+ uses: actions/github-script@v7
311
+ with:
312
+ script: |
313
+ const report = require('./schema-report.json');
314
+ const fails = report.results.filter(r => r.schemas.some(s => s.status === 'fail'));
315
+ // ... format and post comment
316
+ ```
317
+
318
+ ## Security Constraints
319
+
320
+ - **Network access**: Required, but restricted to GET requests on explicitly provided URLs
321
+ - **No credentials**: Never send auth headers, cookies, or API keys
322
+ - **SSRF prevention**: Reject private IP ranges and non-HTTP(S) schemes
323
+ - **Input sanitization**: URL parameters must be validated as proper URLs before fetching
324
+ - **No DOM execution**: Parse HTML as text, do not execute JavaScript (prevents XSS in audit reports)
325
+ - **Output sanitization**: Strip any user-controlled content from reports that could contain XSS payloads
@@ -0,0 +1,191 @@
1
+ ---
2
+ id: seo-audit
3
+ version: 1.0.0
4
+ name: SEO Technical Audit
5
+ description: >
6
+ Comprehensive technical SEO audit for hotel websites. Checks meta tags, headings,
7
+ internal linking, page speed signals, mobile readiness, crawl directives, and Core Web Vitals
8
+ indicators. Supports --url for single page and --sitemap for batch auditing.
9
+
10
+ user-invokable: true
11
+ license: MIT
12
+ metadata:
13
+ author: codeconductor
14
+ category: seo
15
+
16
+ compatibility:
17
+ tools: [claude, codex, gemini, opencode]
18
+ stacks:
19
+ languages: []
20
+ frameworks: [astro, nextjs, django, spring]
21
+
22
+ risk:
23
+ level: medium
24
+ can_execute_shell: true
25
+ can_modify_files: false
26
+ requires_network: true
27
+
28
+ inputs:
29
+ - name: url
30
+ type: string
31
+ required: false
32
+ description: Single URL to audit
33
+ - name: sitemap
34
+ type: string
35
+ required: false
36
+ description: Remote sitemap XML URL. Only URLs listed here will be audited.
37
+
38
+ outputs:
39
+ - name: report
40
+ type: json
41
+ description: Structured SEO audit report
42
+
43
+ quality:
44
+ reviewed_by: codeconductor-core
45
+ version: 0.3.0
46
+ ---
47
+
48
+ # SEO Technical Audit
49
+
50
+ ## Purpose
51
+
52
+ Perform a comprehensive technical SEO audit on hotel and hospitality websites.
53
+ Identify issues that affect search engine visibility, crawlability, and user experience.
54
+
55
+ ## Invocation
56
+
57
+ ```bash
58
+ # Single URL
59
+ codeconductor seo audit --url https://www.example.com
60
+
61
+ # Sitemap-scoped (batch)
62
+ codeconductor seo audit --sitemap https://www.example.com/sitemap-0.xml
63
+
64
+ # JSON output
65
+ codeconductor seo audit --sitemap https://www.example.com/sitemap-0.xml --format json
66
+ ```
67
+
68
+ ## Hard Rules
69
+
70
+ 1. **Sitemap-scoped only.** When `--sitemap` is provided, only audit URLs from the sitemap.
71
+ 2. **No external link following.** Do not crawl links found on pages that are not in the sitemap.
72
+ 3. **GET only.** All HTTP requests must be GET.
73
+ 4. **No auth headers.** Never send cookies, auth tokens, or API keys.
74
+ 5. **Timeout.** 10 seconds per request.
75
+ 6. **Rate limiting.** 500ms delay between requests. Configurable via `--delay`.
76
+ 7. **SSRF prevention.** Reject private IP ranges and non-HTTP(S) schemes.
77
+
78
+ ## Audit Checks
79
+
80
+ ### Meta Tags
81
+
82
+ | Check | Severity | Details |
83
+ |-------|----------|---------|
84
+ | `<title>` present | FAIL | Every page must have a unique title |
85
+ | `<title>` length | WARNING | 50-60 characters optimal |
86
+ | `<title>` has brand | SUGGESTION | Hotel name should appear in title |
87
+ | `<meta name="description">` present | FAIL | Every page needs a meta description |
88
+ | `<meta name="description">` length | WARNING | 150-160 characters optimal |
89
+ | `<link rel="canonical">` present | FAIL | Every page must declare its canonical URL |
90
+ | Canonical matches URL | WARNING | Canonical should match the actual URL or be intentional |
91
+ | `<meta name="robots">` | WARNING | Check for accidental noindex/nofollow |
92
+ | `hreflang` tags | WARNING | Hotel sites are often multilingual |
93
+
94
+ ### Open Graph & Social
95
+
96
+ | Check | Severity | Details |
97
+ |-------|----------|---------|
98
+ | `og:title` present | WARNING | Required for social sharing |
99
+ | `og:description` present | WARNING | Required for social sharing |
100
+ | `og:image` present | WARNING | Required for social sharing previews |
101
+ | `og:image` dimensions | SUGGESTION | Minimum 1200x630px recommended |
102
+ | `og:type` present | SUGGESTION | Should be `website` or specific type |
103
+ | `twitter:card` present | SUGGESTION | `summary_large_image` for hotels |
104
+
105
+ ### Content Structure
106
+
107
+ | Check | Severity | Details |
108
+ |-------|----------|---------|
109
+ | Single `<h1>` | FAIL | Exactly one H1 per page |
110
+ | Heading hierarchy | WARNING | No skipped levels (H1 -> H3) |
111
+ | Image alt text | WARNING | Every `<img>` must have alt text |
112
+ | Image alt text quality | SUGGESTION | Alt text should be descriptive, not filename |
113
+ | Internal links | WARNING | Pages should link to other site pages |
114
+ | Content length | WARNING | Thin content (< 300 words) on non-utility pages |
115
+
116
+ ### Technical
117
+
118
+ | Check | Severity | Details |
119
+ |-------|----------|---------|
120
+ | HTTPS | FAIL | All pages must use HTTPS |
121
+ | Response time | WARNING | Flag pages > 3s response time |
122
+ | Content-Type header | WARNING | Must include charset |
123
+ | HTML validity | SUGGESTION | Flag obvious HTML errors |
124
+ | Viewport meta | FAIL | Required for mobile |
125
+ | `lang` attribute | WARNING | `<html lang="...">` must be present |
126
+
127
+ ### Crawl Directives
128
+
129
+ | Check | Severity | Details |
130
+ |-------|----------|---------|
131
+ | robots.txt accessible | WARNING | Should be present at /robots.txt |
132
+ | Sitemap in robots.txt | SUGGESTION | Sitemap URL should be declared |
133
+ | noindex on important pages | FAIL | Hotel pages should be indexable |
134
+ | nofollow on internal links | WARNING | Internal links should pass equity |
135
+
136
+ ### Hotel-Specific SEO
137
+
138
+ | Check | Severity | Details |
139
+ |-------|----------|---------|
140
+ | Room pages linked from homepage | WARNING | Key pages should be 1-2 clicks from home |
141
+ | Booking CTA present | SUGGESTION | Hotel pages should have clear booking paths |
142
+ | Location/address visible | WARNING | Important for local SEO |
143
+ | Review markup visible | SUGGESTION | Social proof in search results |
144
+ | Multi-language support | WARNING | hreflang for international hotels |
145
+
146
+ ## Output Format
147
+
148
+ ### CLI (default)
149
+
150
+ ```text
151
+ SEO Audit Report
152
+ ================
153
+ Source: --sitemap https://www.cantovallarta.com/sitemap-0.xml
154
+ URLs audited: 24
155
+ Timestamp: 2026-05-29T06:40:00Z
156
+
157
+ --- https://www.cantovallarta.com/ ---
158
+ [FAIL] Missing <meta name="description">
159
+ [WARNING] Title too long (68 chars, optimal: 50-60)
160
+ [WARNING] Missing hreflang tags
161
+ [PASS] Canonical URL present
162
+ [PASS] HTTPS
163
+ [PASS] Single H1
164
+
165
+ --- Summary ---
166
+ Total URLs: 24
167
+ Critical: 3
168
+ Warnings: 12
169
+ Suggestions: 8
170
+ ```
171
+
172
+ ## Remediation Guidance
173
+
174
+ For each FAIL or WARNING, include:
175
+
176
+ 1. **What is wrong** — specific issue
177
+ 2. **Why it matters** — SEO impact
178
+ 3. **How to fix** — exact code snippet
179
+
180
+ ### Example
181
+
182
+ ```text
183
+ FAIL: Missing <meta name="description"> on /rooms/ocean-suite
184
+
185
+ Why: Without a meta description, Google auto-generates one from page content.
186
+ This often produces poor snippets that reduce click-through rate.
187
+
188
+ Fix: Add to <head>:
189
+ <meta name="description" content="Ocean Suite at Canto Vallarta — king bed,
190
+ ocean view balcony, and private jacuzzi. Book direct for best rate.">
191
+ ```
@@ -0,0 +1,9 @@
1
+ target: agy
2
+ entries:
3
+ - src: opencode/agents
4
+ dest: .agy/agents
5
+ strategy: overwrite
6
+ template: true
7
+ - src: opencode/prompts/v0.2.0
8
+ dest: .agy/prompts/v0.2.0
9
+ strategy: overwrite
@@ -3,6 +3,7 @@ entries:
3
3
  - src: opencode/opencode.jsonc
4
4
  dest: .opencode/opencode.jsonc
5
5
  strategy: overwrite
6
+ globalStrategy: merge-json
6
7
  - src: opencode/agents
7
8
  dest: .opencode/agents
8
9
  strategy: overwrite
@@ -15,4 +16,4 @@ entries:
15
16
  strategy: overwrite
16
17
  - src: opencode/skills
17
18
  dest: .opencode/skills
18
- strategy: overwrite
19
+ strategy: overwrite
@@ -0,0 +1,59 @@
1
+ # Model configuration for Agy preset (experimental)
2
+ target: agy
3
+ agents:
4
+ architect:
5
+ claude: claude-opus-4-7
6
+ opencode: opencode-go/deepseek-v4-pro
7
+ codex: gpt-5.5
8
+ gemini: gemini-2.5-pro
9
+ cursor: gpt-5.5
10
+ agy: gemini-2.5-pro
11
+ implementer:
12
+ claude: claude-sonnet-4-6
13
+ opencode: opencode-go/mimo-v2.5-pro
14
+ codex: gpt-5.3-codex
15
+ gemini: gemini-2.5-flash
16
+ cursor: gpt-5.3
17
+ agy: gemini-2.5-flash
18
+ tester:
19
+ claude: claude-sonnet-4-6
20
+ opencode: opencode-go/minimax-m2.7
21
+ codex: gpt-5.3-codex
22
+ gemini: gemini-2.5-flash
23
+ cursor: gpt-5.3
24
+ agy: gemini-2.5-flash
25
+ orchestrator:
26
+ claude: claude-sonnet-4-6
27
+ opencode: opencode-go/deepseek-v4-pro
28
+ codex: gpt-5.2
29
+ gemini: gemini-2.5-pro
30
+ cursor: gpt-5.2
31
+ agy: gemini-2.5-pro
32
+ reviewer:
33
+ claude: claude-sonnet-4-6
34
+ opencode: opencode-go/qwen3.6-plus
35
+ codex: gpt-5.4
36
+ gemini: gemini-2.5-pro
37
+ cursor: gpt-5.4
38
+ agy: gemini-2.5-pro
39
+ docs:
40
+ claude: claude-haiku-4-5-20251001
41
+ opencode: opencode-go/qwen3.6-plus
42
+ codex: gpt-5.4-mini
43
+ gemini: gemini-2.5-flash
44
+ cursor: gpt-5.4-mini
45
+ agy: gemini-2.5-flash
46
+ task-coach:
47
+ claude: claude-haiku-4-5-20251001
48
+ opencode: opencode-go/kimi-k2.6
49
+ codex: gpt-5.4-mini
50
+ gemini: gemini-2.5-flash
51
+ cursor: gpt-5.4-mini
52
+ agy: gemini-2.5-flash
53
+ repo-explorer:
54
+ claude: claude-haiku-4-5-20251001
55
+ opencode: opencode-go/qwen3.6-plus
56
+ codex: gpt-5.4-mini
57
+ gemini: gemini-2.5-flash
58
+ cursor: gpt-5.4-mini
59
+ agy: gemini-2.5-flash
@@ -29,13 +29,13 @@ agents:
29
29
  cursor: gpt-5.2
30
30
  reviewer:
31
31
  claude: claude-sonnet-4-6
32
- opencode: opencode-go/qwen-3.6-plus
32
+ opencode: opencode-go/qwen3.6-plus
33
33
  codex: gpt-5.4
34
34
  gemini: gemini-2.5-pro
35
35
  cursor: gpt-5.4
36
36
  docs:
37
37
  claude: claude-haiku-4-5-20251001
38
- opencode: opencode-go/qwen-3.6-plus
38
+ opencode: opencode-go/qwen3.6-plus
39
39
  codex: gpt-5.4-mini
40
40
  gemini: gemini-2.5-flash
41
41
  cursor: gpt-5.4-mini
@@ -47,7 +47,7 @@ agents:
47
47
  cursor: gpt-5.4-mini
48
48
  repo-explorer:
49
49
  claude: claude-haiku-4-5-20251001
50
- opencode: opencode-go/qwen3.5-plus
50
+ opencode: opencode-go/qwen3.6-plus
51
51
  codex: gpt-5.4-mini
52
52
  gemini: gemini-2.5-flash
53
53
  cursor: gpt-5.4-mini
@@ -30,13 +30,13 @@ agents:
30
30
  cursor: gpt-5.2
31
31
  reviewer:
32
32
  claude: claude-sonnet-4-6
33
- opencode: opencode-go/qwen-3.6-plus
33
+ opencode: opencode-go/qwen3.6-plus
34
34
  codex: gpt-5.4
35
35
  gemini: gemini-2.5-pro
36
36
  cursor: gpt-5.4
37
37
  docs:
38
38
  claude: claude-haiku-4-5-20251001
39
- opencode: opencode-go/qwen-3.6-plus
39
+ opencode: opencode-go/qwen3.6-plus
40
40
  codex: gpt-5.4-mini
41
41
  gemini: gemini-2.5-flash
42
42
  cursor: gpt-5.4-mini
@@ -48,7 +48,7 @@ agents:
48
48
  cursor: gpt-5.4-mini
49
49
  repo-explorer:
50
50
  claude: claude-haiku-4-5-20251001
51
- opencode: opencode-go/qwen3.5-plus
51
+ opencode: opencode-go/qwen3.6-plus
52
52
  codex: gpt-5.4-mini
53
53
  gemini: gemini-2.5-flash
54
54
  cursor: gpt-5.4-mini
@@ -29,13 +29,13 @@ agents:
29
29
  cursor: gpt-5.2
30
30
  reviewer:
31
31
  claude: claude-sonnet-4-6
32
- opencode: opencode-go/qwen-3.6-plus
32
+ opencode: opencode-go/qwen3.6-plus
33
33
  codex: gpt-5.4
34
34
  gemini: gemini-2.5-pro
35
35
  cursor: gpt-5.4
36
36
  docs:
37
37
  claude: claude-haiku-4-5-20251001
38
- opencode: opencode-go/qwen-3.6-plus
38
+ opencode: opencode-go/qwen3.6-plus
39
39
  codex: gpt-5.4-mini
40
40
  gemini: gemini-2.5-flash
41
41
  cursor: gpt-5.4-mini
@@ -47,7 +47,7 @@ agents:
47
47
  cursor: gpt-5.4-mini
48
48
  repo-explorer:
49
49
  claude: claude-haiku-4-5-20251001
50
- opencode: opencode-go/qwen3.5-plus
50
+ opencode: opencode-go/qwen3.6-plus
51
51
  codex: gpt-5.4-mini
52
52
  gemini: gemini-2.5-flash
53
53
  cursor: gpt-5.4-mini
@@ -29,13 +29,13 @@ agents:
29
29
  cursor: gpt-5.2
30
30
  reviewer:
31
31
  claude: claude-sonnet-4-6
32
- opencode: opencode-go/qwen-3.6-plus
32
+ opencode: opencode-go/qwen3.6-plus
33
33
  codex: gpt-5.4
34
34
  gemini: gemini-2.5-pro
35
35
  cursor: gpt-5.4
36
36
  docs:
37
37
  claude: claude-haiku-4-5-20251001
38
- opencode: opencode-go/qwen-3.6-plus
38
+ opencode: opencode-go/qwen3.6-plus
39
39
  codex: gpt-5.4-mini
40
40
  gemini: gemini-2.5-flash
41
41
  cursor: gpt-5.4-mini
@@ -47,7 +47,7 @@ agents:
47
47
  cursor: gpt-5.4-mini
48
48
  repo-explorer:
49
49
  claude: claude-haiku-4-5-20251001
50
- opencode: opencode-go/qwen3.5-plus
50
+ opencode: opencode-go/qwen3.6-plus
51
51
  codex: gpt-5.4-mini
52
52
  gemini: gemini-2.5-flash
53
53
  cursor: gpt-5.4-mini