Skip to content

Commit 88d2418

Browse files
JustAGhosTclaude
andcommitted
chore(merge): merge main into dev (#433)
Resolves 486 merge conflicts: - Generated files (.agents/skills/, .claude/, .cursor/, .windsurf/, .clinerules/, .roo/, .github/): accepted main (upstream) version per agentkit-generated merge driver convention - check.mjs: kept dev's robust PM detection (lockfile + commandExists verification) over main's simpler detectPackageManager helper; retained more informative warning message from dev - cli.mjs: kept dev's Array.isArray safety check for --help short-circuit Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2 parents 8794fc1 + db2f55b commit 88d2418

485 files changed

Lines changed: 1902 additions & 2520 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
/**
2+
* AgentKit Forge — propose-skill
3+
*
4+
* Promotes a local skill from .agents/skills/<name>/ to org-meta/skills/<name>/
5+
* by creating a branch and copying the SKILL.md file.
6+
*
7+
* Usage:
8+
* node propose-skill.mjs <skill-name>
9+
* pnpm ak:propose-skill <skill-name>
10+
*
11+
* What it does:
12+
* 1. Reads the skill from {projectRoot}/.agents/skills/<name>/SKILL.md
13+
* 2. Resolves the org-meta path (ORG_META_PATH env var or ~/repos/org-meta)
14+
* 3. Creates a new git branch: feat/propose-skill-<name>
15+
* 4. Copies the SKILL.md to org-meta/skills/<name>/SKILL.md
16+
* 5. Prints instructions for the next steps (commit, push, PR)
17+
*/
18+
import { execFileSync } from 'child_process';
19+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
20+
import { dirname, join, resolve } from 'path';
21+
import { fileURLToPath } from 'url';
22+
23+
const __dirname = dirname(fileURLToPath(import.meta.url));
24+
25+
// ---------------------------------------------------------------------------
26+
// Helpers
27+
// ---------------------------------------------------------------------------
28+
29+
function log(msg) {
30+
process.stdout.write(msg + '\n');
31+
}
32+
33+
function err(msg) {
34+
process.stderr.write(`[propose-skill] Error: ${msg}\n`);
35+
process.exit(1);
36+
}
37+
38+
function resolveOrgMetaPath() {
39+
return process.env.ORG_META_PATH
40+
? resolve(process.env.ORG_META_PATH)
41+
: resolve(process.env.HOME || process.env.USERPROFILE || '~', 'repos', 'org-meta');
42+
}
43+
44+
// ---------------------------------------------------------------------------
45+
// Main
46+
// ---------------------------------------------------------------------------
47+
48+
const skillName = process.argv[2];
49+
50+
if (!skillName || skillName.startsWith('-')) {
51+
log('Usage: pnpm ak:propose-skill <skill-name>');
52+
log('');
53+
log('Promotes a local skill from .agents/skills/<name>/ to org-meta/skills/<name>/.');
54+
log('The skill must exist in the current repo and NOT already be in skills.yaml.');
55+
process.exit(0);
56+
}
57+
58+
const projectRoot = process.cwd();
59+
const localSkillPath = join(projectRoot, '.agents', 'skills', skillName, 'SKILL.md');
60+
61+
if (!existsSync(localSkillPath)) {
62+
err(`Skill '${skillName}' not found at ${localSkillPath}`);
63+
}
64+
65+
const orgMetaRoot = resolveOrgMetaPath();
66+
if (!existsSync(orgMetaRoot)) {
67+
err(`org-meta not found at ${orgMetaRoot}. Set ORG_META_PATH env var to override.`);
68+
}
69+
70+
const destDir = join(orgMetaRoot, 'skills', skillName);
71+
const destPath = join(destDir, 'SKILL.md');
72+
73+
if (existsSync(destPath)) {
74+
log(`[propose-skill] '${skillName}' already exists in org-meta at ${destPath}`);
75+
log('If you want to update it, edit the file directly and open a PR in org-meta.');
76+
process.exit(0);
77+
}
78+
79+
// Read the local skill content
80+
const content = readFileSync(localSkillPath, 'utf-8');
81+
82+
// Create branch in org-meta
83+
const branchName = `feat/propose-skill-${skillName}`;
84+
log(`[propose-skill] Creating branch '${branchName}' in org-meta...`);
85+
try {
86+
execFileSync('git', ['checkout', '-b', branchName], { cwd: orgMetaRoot, stdio: 'pipe' });
87+
} catch (e) {
88+
err(`Failed to create branch: ${e?.message ?? e}`);
89+
}
90+
91+
// Write the skill file
92+
mkdirSync(destDir, { recursive: true });
93+
writeFileSync(destPath, content, 'utf-8');
94+
log(`[propose-skill] Wrote ${destPath}`);
95+
96+
// Print next steps
97+
log('');
98+
log('Next steps:');
99+
log(` cd ${orgMetaRoot}`);
100+
log(` git add skills/${skillName}/SKILL.md`);
101+
log(` git commit -m "feat(skills): propose ${skillName} from downstream repo"`);
102+
log(` git push -u origin ${branchName}`);
103+
log(' # Then open a PR against org-meta main');
104+
log('');
105+
log(`Once merged, add '${skillName}' to .agentkit/spec/skills.yaml with source: org-meta.`);

.agentkit/templates/root/AGENT_BACKLOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
| Priority | Team | Task | Phase | Status | Notes |
2626
| -------- | ----------------- | --------------------------------------------- | -------------- | ----------- | ------------------------ |
2727
| P0 | T4-Infrastructure | Configure CI pipeline for main branch | Implementation | In Progress | GitHub Actions workflow; scope: branch-protection, drift check, quality gates on main |
28-
| P0 | T10-Quality | Set up test framework and coverage thresholds | Implementation | In Progress | Vitest (coverage via v8); scope: .agentkit test suite, 80% coverage target, run in CI |
28+
| P0 | T10-Quality | Set up test framework and coverage thresholds | Implementation | In Progress | Vitest + Istanbul; scope: .agentkit test suite, 80% coverage target, run in CI |
2929
| P1 | T1-Backend | Define core API route structure | Planning | In Progress | REST endpoints for v1 |
3030
| P1 | T3-Data | Design initial database schema | Planning | Todo | Depends on T1 API design |
3131
| P1 | T8-DevEx | Configure linting and formatting rules | Implementation | Done | ESLint + Prettier |

.agents/skills/analyze-agents/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
name: 'analyze-agents'
33
description: 'Generates a comprehensive agent/team relationship matrix. Analyzes dependencies, notifications, handoffs, coverage gaps, bottlenecks, and consolidation opportunities across all teams and agents.'
4-
generated_by: 'retort'
4+
generated_by: 'agentkit-forge'
55
last_model: 'sync-engine'
6-
last_updated: '2026-03-20'
6+
last_updated: '2026-03-17'
77
# Format: YAML frontmatter + Markdown body. Codex agent skill definition.
88
# Docs: https://developers.openai.com/codex/guides/agents-md
99
---
1010

11-
<!-- GENERATED by Retort v3.1.0 — DO NOT EDIT -->
12-
<!-- Source: .agentkit/spec + .agentkit/overlays/retort -->
11+
<!-- GENERATED by AgentKit Forge v3.1.0 — DO NOT EDIT -->
12+
<!-- Source: .agentkit/spec + .agentkit/overlays/agentkit-forge -->
1313
<!-- Regenerate: pnpm -C .agentkit agentkit:sync -->
1414

1515
# analyze-agents
@@ -36,7 +36,7 @@ Invoke this skill when you need to perform the `analyze-agents` operation.
3636

3737
## Project Context
3838

39-
- Repository: retort
39+
- Repository: agentkit-forge
4040
- Default branch: main
4141
- Tech stack: javascript, yaml, markdown
4242

.agents/skills/backlog/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
name: 'backlog'
33
description: 'Displays a consolidated backlog view from all sources (external tracker, discovery, healthcheck, code TODOs, review findings, manual entries). Supports filtering and multiple output formats for CLI and future UI consumption.'
4-
generated_by: 'retort'
4+
generated_by: 'agentkit-forge'
55
last_model: 'sync-engine'
6-
last_updated: '2026-03-20'
6+
last_updated: '2026-03-17'
77
# Format: YAML frontmatter + Markdown body. Codex agent skill definition.
88
# Docs: https://developers.openai.com/codex/guides/agents-md
99
---
1010

11-
<!-- GENERATED by Retort v3.1.0 — DO NOT EDIT -->
12-
<!-- Source: .agentkit/spec + .agentkit/overlays/retort -->
11+
<!-- GENERATED by AgentKit Forge v3.1.0 — DO NOT EDIT -->
12+
<!-- Source: .agentkit/spec + .agentkit/overlays/agentkit-forge -->
1313
<!-- Regenerate: pnpm -C .agentkit agentkit:sync -->
1414

1515
# backlog
@@ -36,7 +36,7 @@ Invoke this skill when you need to perform the `backlog` operation.
3636

3737
## Project Context
3838

39-
- Repository: retort
39+
- Repository: agentkit-forge
4040
- Default branch: main
4141
- Tech stack: javascript, yaml, markdown
4242

.agents/skills/brand/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
name: 'brand'
33
description: 'Manage the project brand spec (brand.yaml) and editor theme. Supports validation, palette preview, theme mapping, contrast auditing, scaffolding, and regeneration of editor theme files.'
4-
generated_by: 'retort'
4+
generated_by: 'agentkit-forge'
55
last_model: 'sync-engine'
6-
last_updated: '2026-03-20'
6+
last_updated: '2026-03-17'
77
# Format: YAML frontmatter + Markdown body. Codex agent skill definition.
88
# Docs: https://developers.openai.com/codex/guides/agents-md
99
---
1010

11-
<!-- GENERATED by Retort v3.1.0 — DO NOT EDIT -->
12-
<!-- Source: .agentkit/spec + .agentkit/overlays/retort -->
11+
<!-- GENERATED by AgentKit Forge v3.1.0 — DO NOT EDIT -->
12+
<!-- Source: .agentkit/spec + .agentkit/overlays/agentkit-forge -->
1313
<!-- Regenerate: pnpm -C .agentkit agentkit:sync -->
1414

1515
# brand
@@ -36,7 +36,7 @@ Invoke this skill when you need to perform the `brand` operation.
3636

3737
## Project Context
3838

39-
- Repository: retort
39+
- Repository: agentkit-forge
4040
- Default branch: main
4141
- Tech stack: javascript, yaml, markdown
4242

.agents/skills/build/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
name: 'build'
33
description: 'Builds the project using the detected tech stack's build command. Supports targeting specific packages in a monorepo or building the entire workspace.'
4-
generated_by: 'retort'
4+
generated_by: 'agentkit-forge'
55
last_model: 'sync-engine'
6-
last_updated: '2026-03-20'
6+
last_updated: '2026-03-17'
77
# Format: YAML frontmatter + Markdown body. Codex agent skill definition.
88
# Docs: https://developers.openai.com/codex/guides/agents-md
99
---
1010

11-
<!-- GENERATED by Retort v3.1.0 — DO NOT EDIT -->
12-
<!-- Source: .agentkit/spec + .agentkit/overlays/retort -->
11+
<!-- GENERATED by AgentKit Forge v3.1.0 — DO NOT EDIT -->
12+
<!-- Source: .agentkit/spec + .agentkit/overlays/agentkit-forge -->
1313
<!-- Regenerate: pnpm -C .agentkit agentkit:sync -->
1414

1515
# build
@@ -59,7 +59,7 @@ Report: detected stack, scope, exact command, status (PASS/FAIL), duration, arti
5959

6060
## Project Context
6161

62-
- Repository: retort
62+
- Repository: agentkit-forge
6363
- Default branch: main
6464
- Tech stack: javascript, yaml, markdown
6565

.agents/skills/check/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
name: 'check'
33
description: 'Runs all quality checks for the repository: type checking, linting, formatting validation, and test suites. Returns a unified pass/fail status with detailed breakdowns per check category.'
4-
generated_by: 'retort'
4+
generated_by: 'agentkit-forge'
55
last_model: 'sync-engine'
6-
last_updated: '2026-03-20'
6+
last_updated: '2026-03-17'
77
# Format: YAML frontmatter + Markdown body. Codex agent skill definition.
88
# Docs: https://developers.openai.com/codex/guides/agents-md
99
---
1010

11-
<!-- GENERATED by Retort v3.1.0 — DO NOT EDIT -->
12-
<!-- Source: .agentkit/spec + .agentkit/overlays/retort -->
11+
<!-- GENERATED by AgentKit Forge v3.1.0 — DO NOT EDIT -->
12+
<!-- Source: .agentkit/spec + .agentkit/overlays/agentkit-forge -->
1313
<!-- Regenerate: pnpm -C .agentkit agentkit:sync -->
1414

1515
# check
@@ -51,7 +51,7 @@ Produce: Quality Gate Results table (Step | Status | Duration | Details), Overal
5151

5252
## Project Context
5353

54-
- Repository: retort
54+
- Repository: agentkit-forge
5555
- Default branch: main
5656
- Tech stack: javascript, yaml, markdown
5757

.agents/skills/cost-centres/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
name: 'cost-centres'
33
description: 'Cost centre management for cloud infrastructure. Manages budget allocations, resource group mappings, tag compliance, and spend tracking. Requires a FinOps-enabled overlay (finops rule domain). For AI session cost tracking, use /cost instead.'
4-
generated_by: 'retort'
4+
generated_by: 'agentkit-forge'
55
last_model: 'sync-engine'
6-
last_updated: '2026-03-20'
6+
last_updated: '2026-03-17'
77
# Format: YAML frontmatter + Markdown body. Codex agent skill definition.
88
# Docs: https://developers.openai.com/codex/guides/agents-md
99
---
1010

11-
<!-- GENERATED by Retort v3.1.0 — DO NOT EDIT -->
12-
<!-- Source: .agentkit/spec + .agentkit/overlays/retort -->
11+
<!-- GENERATED by AgentKit Forge v3.1.0 — DO NOT EDIT -->
12+
<!-- Source: .agentkit/spec + .agentkit/overlays/agentkit-forge -->
1313
<!-- Regenerate: pnpm -C .agentkit agentkit:sync -->
1414

1515
# cost-centres
@@ -36,7 +36,7 @@ Invoke this skill when you need to perform the `cost-centres` operation.
3636

3737
## Project Context
3838

39-
- Repository: retort
39+
- Repository: agentkit-forge
4040
- Default branch: main
4141
- Tech stack: javascript, yaml, markdown
4242

.agents/skills/cost/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
name: 'cost'
33
description: 'Session cost and usage tracking. Shows session summaries, lists recent sessions, and generates aggregate usage reports. Tracks session duration, commands run, and files modified via lifecycle hooks.'
4-
generated_by: 'retort'
4+
generated_by: 'agentkit-forge'
55
last_model: 'sync-engine'
6-
last_updated: '2026-03-20'
6+
last_updated: '2026-03-17'
77
# Format: YAML frontmatter + Markdown body. Codex agent skill definition.
88
# Docs: https://developers.openai.com/codex/guides/agents-md
99
---
1010

11-
<!-- GENERATED by Retort v3.1.0 — DO NOT EDIT -->
12-
<!-- Source: .agentkit/spec + .agentkit/overlays/retort -->
11+
<!-- GENERATED by AgentKit Forge v3.1.0 — DO NOT EDIT -->
12+
<!-- Source: .agentkit/spec + .agentkit/overlays/agentkit-forge -->
1313
<!-- Regenerate: pnpm -C .agentkit agentkit:sync -->
1414

1515
# cost
@@ -44,7 +44,7 @@ Invoke this skill when you need to perform the `cost` operation.
4444

4545
## Project Context
4646

47-
- Repository: retort
47+
- Repository: agentkit-forge
4848
- Default branch: main
4949
- Tech stack: javascript, yaml, markdown
5050

.agents/skills/deploy/SKILL.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
name: 'deploy'
33
description: 'Triggers a deployment pipeline or generates deployment artifacts. Validates pre-deployment checks (build, test, lint) before proceeding. Supports dry-run mode for safety.'
4-
generated_by: 'retort'
4+
generated_by: 'agentkit-forge'
55
last_model: 'sync-engine'
6-
last_updated: '2026-03-20'
6+
last_updated: '2026-03-17'
77
# Format: YAML frontmatter + Markdown body. Codex agent skill definition.
88
# Docs: https://developers.openai.com/codex/guides/agents-md
99
---
1010

11-
<!-- GENERATED by Retort v3.1.0 — DO NOT EDIT -->
12-
<!-- Source: .agentkit/spec + .agentkit/overlays/retort -->
11+
<!-- GENERATED by AgentKit Forge v3.1.0 — DO NOT EDIT -->
12+
<!-- Source: .agentkit/spec + .agentkit/overlays/agentkit-forge -->
1313
<!-- Regenerate: pnpm -C .agentkit agentkit:sync -->
1414

1515
# deploy
@@ -65,7 +65,7 @@ Report: service, environment, platform, status, timeline, command output, post-d
6565

6666
## Project Context
6767

68-
- Repository: retort
68+
- Repository: agentkit-forge
6969
- Default branch: main
7070
- Tech stack: javascript, yaml, markdown
7171

0 commit comments

Comments
 (0)