Skip to content

feat: add gitagent format for cross-harness portability#833

Merged
affaan-m merged 1 commit intoaffaan-m:mainfrom
shreyas-lyzr:feat/gitagent-format
Mar 30, 2026
Merged

feat: add gitagent format for cross-harness portability#833
affaan-m merged 1 commit intoaffaan-m:mainfrom
shreyas-lyzr:feat/gitagent-format

Conversation

@shreyas-lyzr
Copy link
Copy Markdown

@shreyas-lyzr shreyas-lyzr commented Mar 23, 2026

Summary

  • Adds gitagent standard metadata files so ECC is also a valid gitagent agent
  • Enables automatic export to all platforms from a single source of truth — replacing the manual cross-harness sync
  • Fully additive — zero changes to existing files

Type

  • Skill
  • Agent
  • Hook
  • Command

What this adds

File Purpose
agent.yaml gitagent manifest — name, version, all 125 skills, model config, tags
SOUL.md Agent identity and core principles (extracted from AGENTS.md)
RULES.md Development rules (extracted from CLAUDE.md and CONTRIBUTING.md)

Why gitagent?

From CONTRIBUTING.md:

Keeping these [cross-harness] subsets in sync is manual; mention in your PR if you updated them.

With gitagent, this becomes automatic:

gitagent export -f cursor      # generates .cursor/rules/*.mdc
gitagent export -f copilot     # generates .github/agents/*.agent.md
gitagent export -f opencode    # generates AGENTS.md + opencode.json
gitagent export -f openclaw    # generates OpenClaw workspaces

ECC's existing skills/*/SKILL.md files already use compatible frontmatter. This PR just adds the metadata layer that makes the full catalog portable.

Testing

  • gitagent validate passes on the agent definition
  • gitagent info shows all 125 skills
  • No existing files modified — zero risk of breakage

Checklist

  • Follows format guidelines
  • No sensitive info (API keys, paths)
  • Clear descriptions
  • Additive only — no existing files touched

Refs #832


Summary by cubic

Adds gitagent metadata so ECC is a valid gitagent agent and can export to all harnesses from one source of truth. Addresses #832 by replacing manual cross-harness sync with automatic exports; fully additive with no changes to existing files.

  • New Features

    • agent.yaml — manifest with spec version, name/version 1.9.0, author/license, preferred model claude-opus-4-6 (fallback claude-sonnet-4-6), tags, and full skills catalog; description notes native agents/commands/hooks remain authoritative while coverage expands.
    • SOUL.md — identity, core principles, orchestration philosophy, and cross-harness vision (extracted from AGENTS.md).
    • RULES.md — development rules and formats for agents/skills/hooks/commits; clarifies “no secrets or absolute/system paths” policy.
  • Migration

    • Run gitagent export -f cursor|copilot|opencode|openclaw to generate platform files; no other steps required.

Written for commit 7ff2f07. Summary will update on new commits.

Summary by CodeRabbit

  • Documentation

    • Added comprehensive contribution guidelines and a project principles framework: mandatory contribution behaviors, test-first expectations, security/input validation rules, immutability and planning conventions, prohibited practices, and standardized artifact/skill descriptions.
  • Chores

    • Added an agent-harness configuration to expose a shared skill catalog, model routing preferences, and metadata to support developer tooling, orchestration, and automation.

@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Mar 23, 2026

Analyzing 5000 commits...

@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Mar 23, 2026

❌ Analysis Failed

Not Found - https://docs.github.com/rest/git/refs#get-a-reference

Troubleshooting
Cause Resolution
Large repository Analysis may timeout on repos with extensive history
API rate limits Wait 15 minutes before retrying
Network issues Queue timeout is 15 minutes; retry may succeed
Permissions Verify app has Contents: Read access

Retry: /ecc-tools analyze


Report Issue | ECC Tools

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Mar 23, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 7200bd4d-1f03-4e75-a336-f259038f0afa

📥 Commits

Reviewing files that changed from the base of the PR and between 2a8c222 and 7ff2f07.

📒 Files selected for processing (3)
  • RULES.md
  • SOUL.md
  • agent.yaml
✅ Files skipped from review due to trivial changes (2)
  • SOUL.md
  • RULES.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • agent.yaml

📝 Walkthrough

Walkthrough

Adds three new repository artifacts: RULES.md (contribution rules and artifact formats), SOUL.md (project identity and guiding principles), and agent.yaml (agent-harness manifest declaring metadata, model routing, and a large skills list).

Changes

Cohort / File(s) Summary
Governance docs
RULES.md, SOUL.md
New governance and guiding-docs: RULES.md specifies mandatory/prohibited contributor behaviors, artifact conventions for agents/*, skills/*, and hook registration, plus commit/PR conventions; SOUL.md defines project identity, core principles, and agent orchestration philosophy.
Agent harness manifest
agent.yaml
Added agent.yaml manifest (spec_version: "0.1.0", name: everything-claude-code, version: 1.9.0) with preferred/fallback models, author/license/tags, and an extensive list of skill identifiers (≈125). Reviewers should validate model identifiers, skill names, and metadata.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related issues

Possibly related PRs

"I hop through files, neat and spry,
New rules, new soul, and YAML sky,
A catalog of clever skills,
Tiny hops and tidy drills 🥕
— your rabbit in the repo"

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat: add gitagent format for cross-harness portability' accurately describes the main change: adding gitagent metadata files to enable cross-harness portability of the ECC agent.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@shreyas-lyzr
Copy link
Copy Markdown
Author

Worth noting — gitagent has 970+ GitHub stars and growing. The standard is being adopted across the ecosystem with 10+ export adapters (Claude Code, Cursor, Copilot, OpenCode, OpenClaw, Codex, Gemini CLI, etc.) and PRs on repos like gstack (37K stars). Adding gitagent format to ECC would make the largest agent harness portable to every major platform automatically.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 23, 2026

Greptile Summary

This PR adds three new files (agent.yaml, SOUL.md, RULES.md) to make ECC a valid gitagent agent, enabling automatic cross-harness export as a replacement for manual per-platform sync. The change is fully additive — no existing files are modified.

Several issues flagged in earlier review rounds have been addressed in this revision:

  • agent.yaml description updated from the misleading "performance optimization system" to an accurate summary of the export surface
  • Skill count is now consistent across agent.yaml, SOUL.md, and AGENTS.md (all show 135, matching the actual skills/ directory)
  • Model identifiers are now consistent — both preferred and fallback use the same non-date-suffixed format (claude-opus-4-6 / claude-sonnet-4-6)
  • RULES.md Skill Format section now includes the required YAML frontmatter fields (name, description, origin) and the origin: ECC vs origin: community distinction
  • SOUL.md explicitly acknowledges that native agents, commands, and hooks remain authoritative until full manifest coverage is added

Remaining minor gap:

  • Both SOUL.md and RULES.md omit the specific 80%+ test coverage threshold that AGENTS.md declares as part of the Test-Driven principle — external consumers of the exported manifest will not see this quantitative requirement

Confidence Score: 5/5

Safe to merge — fully additive, no existing files modified, all P0/P1 issues from prior rounds resolved

All previously raised P1-level concerns (inaccurate description, skill count mismatch, inconsistent model identifiers, missing frontmatter fields) have been addressed in this revision. The only remaining finding is a P2 documentation completeness gap (missing 80%+ coverage threshold in SOUL.md and RULES.md), which does not block merge.

No files require special attention — the 80%+ coverage threshold omission in SOUL.md and RULES.md is a minor documentation gap only

Important Files Changed

Filename Overview
agent.yaml Adds gitagent manifest with corrected description, consistent model identifiers (both without date suffix), and 135 skills matching the repository's actual skill count and AGENTS.md
SOUL.md Agent identity file extracted from AGENTS.md; skill/agent/command counts now match AGENTS.md (135 skills, 30 agents), but omits the 80%+ coverage threshold from the Test-Driven principle
RULES.md Development rules extracted from CLAUDE.md/CONTRIBUTING.md; now includes YAML frontmatter fields for Skill Format, but still omits the 80%+ test coverage threshold present in AGENTS.md

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A["ECC Repository (source of truth)"] --> B["agent.yaml\n(gitagent manifest)"]
    A --> C["SOUL.md\n(identity + principles)"]
    A --> D["RULES.md\n(development rules)"]
    A --> E["skills/*/SKILL.md\n(135 skills)"]
    A --> F["agents/*.md\n(30 agents)"]
    A --> G["commands/\n(60 commands)"]
    A --> H["hooks/\n(automations)"]
    B --> I["gitagent export"]
    C --> I
    D --> I
    E --> I
    F -.->|"not yet in manifest\n(remain authoritative)"| I
    G -.->|"not yet in manifest\n(remain authoritative)"| I
    H -.->|"not yet in manifest\n(remain authoritative)"| I
    I --> J["cursor\n.cursor/rules/*.mdc"]
    I --> K["copilot\n.github/agents/*.agent.md"]
    I --> L["opencode\nAGENTS.md + opencode.json"]
    I --> M["openclaw\nworkspaces"]
Loading

Reviews (4): Last reviewed commit: "feat: add gitagent format for cross-harn..." | Re-trigger Greptile

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 3 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="RULES.md">

<violation number="1" location="RULES.md:14">
P1: The new sensitive-data rule is over-broad: forbidding all file paths conflicts with existing command/agent output contracts that require exact file paths for actionable diagnostics.</violation>
</file>

Since this is your first cubic review, here's how it works:

  • cubic automatically reviews your code and comments on bugs and improvements
  • Teach cubic by replying to its comments. cubic learns from your replies and gets better over time
  • Add one-off context when rerunning by tagging @cubic-dev-ai with guidance or docs links (including llms.txt)
  • Ask questions if you need clarification on any suggestion

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
RULES.md (1)

14-14: Clarify "file paths" in sensitive data guideline.

The prohibition on "file paths" is ambiguous. Relative paths in code (e.g., src/config.js) are necessary and non-sensitive, while absolute system paths (e.g., /home/user/.secrets/) or paths revealing system structure are sensitive. Consider specifying "absolute file paths" or "system file paths" for clarity.

📝 Proposed clarification
-- Include sensitive data (API keys, tokens, file paths) in any output
+- Include sensitive data (API keys, tokens, absolute file paths) in any output
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@RULES.md` at line 14, Update the RULES.md rule that currently reads "Include
sensitive data (API keys, tokens, file paths) in any output" to clarify what
"file paths" means by specifying "absolute or system file paths (e.g.,
/home/user/.secrets/) or any paths that reveal system structure or sensitive
locations," while allowing non-sensitive relative project paths (e.g.,
src/config.js); ensure the revised wording replaces the original phrase "file
paths" and leaves the rest of the rule intact so reviewers can clearly
distinguish allowed relative paths from disallowed absolute/system paths.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@RULES.md`:
- Line 14: Update the RULES.md rule that currently reads "Include sensitive data
(API keys, tokens, file paths) in any output" to clarify what "file paths" means
by specifying "absolute or system file paths (e.g., /home/user/.secrets/) or any
paths that reveal system structure or sensitive locations," while allowing
non-sensitive relative project paths (e.g., src/config.js); ensure the revised
wording replaces the original phrase "file paths" and leaves the rest of the
rule intact so reviewers can clearly distinguish allowed relative paths from
disallowed absolute/system paths.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5c794771-d438-4472-a8e3-2cd1848d017e

📥 Commits

Reviewing files that changed from the base of the PR and between df4f2df and fbeb096.

📒 Files selected for processing (3)
  • RULES.md
  • SOUL.md
  • agent.yaml

@affaan-m
Copy link
Copy Markdown
Owner

thanks. queued for review.

@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Mar 25, 2026

Analyzing 5000 commits...

@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Mar 25, 2026

Analysis Failed

Not Found - https://docs.github.com/rest/git/refs#get-a-reference

Troubleshooting
Cause Resolution
Large repository Analysis may timeout on repos with extensive history
API rate limits Wait 15 minutes before retrying
Network issues Queue timeout is 15 minutes; retry may succeed
Permissions Verify app has Contents: Read access

Retry: /ecc-tools analyze


Report Issue | ECC Tools

@shreyas-lyzr
Copy link
Copy Markdown
Author

Addressed the Greptile review feedback:

  • Fixed: agent.yaml description changed from "performance optimization system" to "production-ready AI coding plugin" — this is what appears in the gitagent registry, so accuracy matters.
  • Skill count (125): SOUL.md says 125, which is the actual count from ls skills/ | wc -l. The existing AGENTS.md says 119 but that's stale (predates recent skill additions). Since this PR is additive-only, updating AGENTS.md is out of scope — but the 125 number in our files is correct.

Pushed as d7a1d68.

@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Mar 25, 2026

Analyzing 5000 commits...

@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Mar 25, 2026

Analysis Failed

Not Found - https://docs.github.com/rest/git/refs#get-a-reference

Troubleshooting
Cause Resolution
Large repository Analysis may timeout on repos with extensive history
API rate limits Wait 15 minutes before retrying
Network issues Queue timeout is 15 minutes; retry may succeed
Permissions Verify app has Contents: Read access

Retry: /ecc-tools analyze


Report Issue | ECC Tools

@affaan-m affaan-m force-pushed the feat/gitagent-format branch from 2a8c222 to 7ff2f07 Compare March 30, 2026 08:50
@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Mar 30, 2026

Analyzing 5000 commits...

@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Mar 30, 2026

Analysis Failed

Not Found - https://docs.github.com/rest/git/refs#get-a-reference

Troubleshooting
Cause Resolution
Large repository Analysis may timeout on repos with extensive history
API rate limits Wait 15 minutes before retrying
Network issues Queue timeout is 15 minutes; retry may succeed
Permissions Verify app has Contents: Read access

Retry: /ecc-tools analyze


Report Issue | ECC Tools

@affaan-m affaan-m merged commit 656cf4c into affaan-m:main Mar 30, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants