-
Notifications
You must be signed in to change notification settings - Fork 0
feat: add voltagent ECC bundle #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
563bdb0
5635441
ae3087c
8027754
669dd89
fc2e446
d7d5b26
596d451
a20e7ab
583535d
4a10d2e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| ```markdown | ||
| # voltagent Development Patterns | ||
|
|
||
| > Auto-generated skill from repository analysis | ||
|
|
||
| ## Overview | ||
| This skill teaches the core development patterns and conventions used in the `voltagent` TypeScript codebase. It covers file naming, import/export styles, commit message patterns, and testing conventions. While no frameworks or automated workflows are detected, this guide ensures consistency and clarity for contributors. | ||
|
|
||
| ## Coding Conventions | ||
|
|
||
| ### File Naming | ||
| - Use **kebab-case** for all file names. | ||
| - Example: | ||
| ``` | ||
| user-service.ts | ||
| data-model.test.ts | ||
| ``` | ||
|
|
||
| ### Import Style | ||
| - Use **relative imports** throughout the codebase. | ||
| - Example: | ||
| ```typescript | ||
| import { fetchData } from './utils/fetch-data'; | ||
| ``` | ||
|
|
||
| ### Export Style | ||
| - Prefer **named exports** over default exports. | ||
| - Example: | ||
| ```typescript | ||
| // In user-service.ts | ||
| export function getUser(id: string) { ... } | ||
|
|
||
| // In another file | ||
| import { getUser } from './user-service'; | ||
| ``` | ||
|
|
||
| ### Commit Message Patterns | ||
| - Commit types are mixed, with prefixes like `docs` and `example`. | ||
| - Average commit message length is 67 characters. | ||
| - Example: | ||
| ``` | ||
| docs: update README with installation instructions | ||
| example: add usage example for fetchData | ||
| ``` | ||
|
|
||
| ## Workflows | ||
|
|
||
| _No automated workflows detected in this repository._ | ||
|
|
||
| ## Testing Patterns | ||
|
|
||
| - **Test files** follow the `*.test.*` naming pattern. | ||
| - Example: | ||
| ``` | ||
| user-service.test.ts | ||
| ``` | ||
| - **Testing framework** is unknown; check existing test files for patterns. | ||
| - Place tests alongside implementation or in a dedicated test directory, following the naming pattern. | ||
|
|
||
| Example test file: | ||
| ```typescript | ||
| // user-service.test.ts | ||
| import { getUser } from './user-service'; | ||
|
|
||
| describe('getUser', () => { | ||
| it('returns user data for a valid ID', () => { | ||
| // test implementation | ||
| }); | ||
| }); | ||
| ``` | ||
|
|
||
| ## Commands | ||
|
|
||
| | Command | Purpose | | ||
| |-----------------|----------------------------------------------| | ||
| | /test | Run all test files matching *.test.* | | ||
| | /lint | Lint the codebase for style consistency | | ||
| | /docs-update | Update documentation files | | ||
| | /example-update | Add or update usage examples | | ||
|
Comment on lines
+72
to
+79
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win Align the command guidance with the registered adapters. Both generated skills advertise slash commands, but
🧰 Tools🪛 markdownlint-cli2 (0.23.0)[warning] 79-79: Tables should be surrounded by blank lines (MD058, blanks-around-tables) 📍 Affects 2 files
🤖 Prompt for AI Agents |
||
| ``` | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| interface: | ||
| display_name: "Voltagent" | ||
| short_description: "Repo-specific patterns and workflows for voltagent" | ||
| default_prompt: "Use the voltagent repo skill to follow existing architecture, testing, and workflow conventions." | ||
| policy: | ||
| allow_implicit_invocation: true |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,227 @@ | ||
| { | ||
| "version": "1.3", | ||
| "schemaVersion": "1.0", | ||
| "generatedBy": "ecc-tools", | ||
| "generatedAt": "2026-07-19T00:03:22.588Z", | ||
| "repo": "https://github.com/nilhemdot/voltagent", | ||
| "referenceSetReadiness": { | ||
| "score": 0, | ||
| "present": 0, | ||
| "total": 7, | ||
| "items": [ | ||
| { | ||
| "id": "deep-analyzer-corpus", | ||
| "label": "Deep analyzer corpus", | ||
| "status": "missing", | ||
| "evidence": [], | ||
| "recommendation": "Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions." | ||
| }, | ||
| { | ||
| "id": "rag-evaluator", | ||
| "label": "RAG/evaluator comparison", | ||
| "status": "missing", | ||
| "evidence": [], | ||
| "recommendation": "Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior." | ||
| }, | ||
| { | ||
| "id": "pr-salvage", | ||
| "label": "PR salvage/review corpus", | ||
| "status": "missing", | ||
| "evidence": [], | ||
| "recommendation": "Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation." | ||
| }, | ||
| { | ||
| "id": "discussion-triage", | ||
| "label": "Discussion triage corpus", | ||
| "status": "missing", | ||
| "evidence": [], | ||
| "recommendation": "Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications." | ||
| }, | ||
| { | ||
| "id": "harness-compatibility", | ||
| "label": "Harness compatibility", | ||
| "status": "missing", | ||
| "evidence": [], | ||
| "recommendation": "Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces." | ||
| }, | ||
| { | ||
| "id": "security-evidence", | ||
| "label": "Security evidence", | ||
| "status": "missing", | ||
| "evidence": [], | ||
| "recommendation": "Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs." | ||
| }, | ||
| { | ||
| "id": "ci-failure-mode", | ||
| "label": "CI failure-mode evidence", | ||
| "status": "missing", | ||
| "evidence": [], | ||
| "recommendation": "Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes." | ||
| } | ||
| ] | ||
| }, | ||
| "profiles": { | ||
| "requested": "core", | ||
| "recommended": "core", | ||
| "effective": "core", | ||
| "requestedAlias": "core", | ||
| "recommendedAlias": "core", | ||
| "effectiveAlias": "core" | ||
| }, | ||
| "requestedProfile": "core", | ||
| "profile": "core", | ||
| "recommendedProfile": "core", | ||
| "effectiveProfile": "core", | ||
| "tier": "free", | ||
| "requestedComponents": [ | ||
| "repo-baseline" | ||
| ], | ||
| "selectedComponents": [ | ||
| "repo-baseline" | ||
| ], | ||
| "requestedAddComponents": [], | ||
| "requestedRemoveComponents": [], | ||
| "blockedRemovalComponents": [], | ||
| "tierFilteredComponents": [], | ||
| "requestedRootPackages": [ | ||
| "runtime-core" | ||
| ], | ||
| "selectedRootPackages": [ | ||
| "runtime-core" | ||
| ], | ||
| "requestedPackages": [ | ||
| "runtime-core" | ||
| ], | ||
| "requestedAddPackages": [], | ||
| "requestedRemovePackages": [], | ||
| "selectedPackages": [ | ||
| "runtime-core" | ||
| ], | ||
| "packages": [ | ||
| "runtime-core" | ||
| ], | ||
| "blockedRemovalPackages": [], | ||
| "tierFilteredRootPackages": [], | ||
| "tierFilteredPackages": [], | ||
| "conflictingPackages": [], | ||
| "dependencyGraph": { | ||
| "runtime-core": [] | ||
| }, | ||
| "resolutionOrder": [ | ||
| "runtime-core" | ||
| ], | ||
| "requestedModules": [ | ||
| "runtime-core" | ||
| ], | ||
| "selectedModules": [ | ||
| "runtime-core" | ||
| ], | ||
| "modules": [ | ||
| "runtime-core" | ||
| ], | ||
| "managedFiles": [ | ||
| ".claude/skills/voltagent/SKILL.md", | ||
| ".agents/skills/voltagent/SKILL.md", | ||
| ".agents/skills/voltagent/agents/openai.yaml", | ||
| ".claude/identity.json", | ||
| ".codex/config.toml", | ||
| ".codex/AGENTS.md", | ||
| ".codex/agents/explorer.toml", | ||
| ".codex/agents/reviewer.toml", | ||
| ".codex/agents/docs-researcher.toml", | ||
| ".claude/homunculus/instincts/inherited/voltagent-instincts.yaml" | ||
| ], | ||
| "packageFiles": { | ||
| "runtime-core": [ | ||
| ".claude/skills/voltagent/SKILL.md", | ||
| ".agents/skills/voltagent/SKILL.md", | ||
| ".agents/skills/voltagent/agents/openai.yaml", | ||
| ".claude/identity.json", | ||
| ".codex/config.toml", | ||
| ".codex/AGENTS.md", | ||
| ".codex/agents/explorer.toml", | ||
| ".codex/agents/reviewer.toml", | ||
| ".codex/agents/docs-researcher.toml", | ||
| ".claude/homunculus/instincts/inherited/voltagent-instincts.yaml" | ||
| ] | ||
| }, | ||
| "moduleFiles": { | ||
| "runtime-core": [ | ||
| ".claude/skills/voltagent/SKILL.md", | ||
| ".agents/skills/voltagent/SKILL.md", | ||
| ".agents/skills/voltagent/agents/openai.yaml", | ||
| ".claude/identity.json", | ||
| ".codex/config.toml", | ||
| ".codex/AGENTS.md", | ||
| ".codex/agents/explorer.toml", | ||
| ".codex/agents/reviewer.toml", | ||
| ".codex/agents/docs-researcher.toml", | ||
| ".claude/homunculus/instincts/inherited/voltagent-instincts.yaml" | ||
| ] | ||
| }, | ||
| "files": [ | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".claude/skills/voltagent/SKILL.md", | ||
| "description": "Repository-specific Claude Code skill generated from git history." | ||
| }, | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".agents/skills/voltagent/SKILL.md", | ||
| "description": "Codex-facing copy of the generated repository skill." | ||
| }, | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".agents/skills/voltagent/agents/openai.yaml", | ||
| "description": "Codex skill metadata so the repo skill appears cleanly in the skill interface." | ||
| }, | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".claude/identity.json", | ||
| "description": "Suggested identity.json baseline derived from repository conventions." | ||
| }, | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".codex/config.toml", | ||
| "description": "Repo-local Codex MCP and multi-agent baseline aligned with ECC defaults." | ||
| }, | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".codex/AGENTS.md", | ||
| "description": "Codex usage guide that points at the generated repo skill and workflow bundle." | ||
| }, | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".codex/agents/explorer.toml", | ||
| "description": "Read-only explorer role config for Codex multi-agent work." | ||
| }, | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".codex/agents/reviewer.toml", | ||
| "description": "Read-only reviewer role config focused on correctness and security." | ||
| }, | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".codex/agents/docs-researcher.toml", | ||
| "description": "Read-only docs researcher role config for API verification." | ||
| }, | ||
| { | ||
| "moduleId": "runtime-core", | ||
| "path": ".claude/homunculus/instincts/inherited/voltagent-instincts.yaml", | ||
| "description": "Continuous-learning instincts derived from repository patterns." | ||
| } | ||
| ], | ||
| "workflows": [], | ||
| "adapters": { | ||
| "claudeCode": { | ||
| "skillPath": ".claude/skills/voltagent/SKILL.md", | ||
| "identityPath": ".claude/identity.json", | ||
| "commandPaths": [] | ||
| }, | ||
| "codex": { | ||
| "configPath": ".codex/config.toml", | ||
| "agentsGuidePath": ".codex/AGENTS.md", | ||
| "skillPath": ".agents/skills/voltagent/SKILL.md" | ||
| } | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove the outer Markdown fence from both generated skill copies. The top-level fence conflicts with nested fences and prevents the files from being valid, normally rendered Markdown.
.agents/skills/voltagent/SKILL.md#L1-L1: remove the opening```markdown..agents/skills/voltagent/SKILL.md#L80-L80: remove the matching closing fence..claude/skills/voltagent/SKILL.md#L1-L1: remove the opening```markdown..claude/skills/voltagent/SKILL.md#L80-L80: remove the matching closing fence.📍 Affects 2 files
.agents/skills/voltagent/SKILL.md#L1-L1(this comment).agents/skills/voltagent/SKILL.md#L80-L80.claude/skills/voltagent/SKILL.md#L1-L1.claude/skills/voltagent/SKILL.md#L80-L80🤖 Prompt for AI Agents
Source: Linters/SAST tools