Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions .agents/skills/voltagent/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
```markdown

Copy link
Copy Markdown

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
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/voltagent/SKILL.md at line 1, Remove the outer opening and
closing Markdown fences from both generated skill copies:
.agents/skills/voltagent/SKILL.md at lines 1 and 80, and
.claude/skills/voltagent/SKILL.md at lines 1 and 80. Preserve all inner Markdown
fences and the remaining document content unchanged.

Source: Linters/SAST tools

# 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

Copy link
Copy Markdown

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

Align the command guidance with the registered adapters. Both generated skills advertise slash commands, but .claude/ecc-tools.json has no Claude command paths.

  • .agents/skills/voltagent/SKILL.md#L72-L79: register the listed commands or rename the section as suggested workflows.
  • .claude/skills/voltagent/SKILL.md#L72-L79: apply the same correction to the Claude-facing copy.
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)

[warning] 79-79: Tables should be surrounded by blank lines

(MD058, blanks-around-tables)

📍 Affects 2 files
  • .agents/skills/voltagent/SKILL.md#L72-L79 (this comment)
  • .claude/skills/voltagent/SKILL.md#L72-L79
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agents/skills/voltagent/SKILL.md around lines 72 - 79, Align the command
guidance with the registered adapters by updating the “Commands” sections in
.agents/skills/voltagent/SKILL.md lines 72-79 and
.claude/skills/voltagent/SKILL.md lines 72-79: either register all listed slash
commands in the relevant adapter configuration or rename the sections to
describe suggested workflows rather than executable commands, applying the same
correction to both copies.

```
6 changes: 6 additions & 0 deletions .agents/skills/voltagent/agents/openai.yaml
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
227 changes: 227 additions & 0 deletions .claude/ecc-tools.json
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"
}
}
}
Loading