Skip to content

Commit 3ab37ee

Browse files
authored
Merge pull request #57 from sigilco/develop
2 parents 479a57f + 7cc3e3b commit 3ab37ee

136 files changed

Lines changed: 4777 additions & 2498 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.

.agents/docs/prd.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Five operating principles:
4545

4646
1. **Tier-1 parity is the bar.** Same functionality across Claude Code, Codex, OpenCode, Pi Mono. TUI-grade fidelity (overlays, widgets) is the only allowed degradation.
4747
2. **Codegen first, guided per-harness fallback second.** Where universal codegen can express a capability across all Tier-1, do that. Where a harness lacks the native primitive, check whether all Tier-1 can support it via a custom (escape-hatch) method, and if so guide the author — rather than dropping the feature.
48-
3. **Keep a compat matrix.** The living [Tier-1 Capability Matrix](../../docs/reference/compat-matrix.md) (published at `/reference/compat-matrix`) records what's universal-codegen, guided-per-harness, and genuinely unsupported. It's the contract for "same functionality, different plumbing."
48+
3. **Keep a compat matrix.** The living [Capability Matrix](../../docs/guide/capability-matrix.md) (published at `/guide/capability-matrix`) records what's universal-codegen, guided-per-harness, and genuinely unsupported. It's the contract for "same functionality, different plumbing."
4949
4. **Lean, no global SDK.** Primitives express intent, not mechanism; each adapter owns its own plumbing. The escape hatch lets power users write native code against each harness's SDK.
5050
5. **Multi-platform by default, platform-specific code allowed.** AgentPlugins gives plugin authors the foundations to distribute their plugin across all Tier-1 harnesses (Claude Code, Codex, OpenCode, Pi Mono). Authors are not forced to support every harness — they may target a single harness or ship harness-specific behavior (e.g., custom logging for one harness) when another harness lacks a needed primitive. The end goal is a distribution platform and utilities so authors can make a plugin usable in other harnesses without porting or rewriting the implementation. Think React Native or Rust: multi-platform by default, platform-specific code when you need it.
5151

@@ -69,8 +69,8 @@ _Draft — this section reflects the current product direction and will be final
6969

7070
- **Distribution-first CLI**`agentplugins add <github-url>` installs a plugin once; the universal store (`~/.agents/plugins/<name>/`) fans out via symlinks to every detected agent harness.
7171
- **Skills.sh compatibility** — plugins exposing `SKILL.md` are first-class citizens; our CLI reads both AgentPlugins and Skills.sh layouts.
72-
- **JSON Schema**`@agentplugins/schema` package + hosted JSON Schema (`agentplugins.dev/schema/v1.json`) for editor autocomplete and self-documenting manifests.
73-
- **Tier-1 parity primitives** — every shipped capability works across Claude Code, Codex, OpenCode, and Pi Mono. The [Tier-1 Capability Matrix](../../docs/reference/compat-matrix.md) is the living contract.
72+
- **JSON Schema**`@agentplugins/schema` package + hosted JSON Schema (`agentplugins.pages.dev/schema/v1.json`) for editor autocomplete and self-documenting manifests.
73+
- **Parity primitives** — every shipped capability works across Claude Code, Codex, OpenCode, and Pi Mono. The [Capability Matrix](../../docs/guide/capability-matrix.md) is the living contract.
7474
- **Security & audit guardrails**`agentplugins audit` scores supply-chain risk (OSV, Scorecard, npm provenance); safe-fetch SSRF guard; lifecycle script policy.
7575
- **Public launch** — registry, docs site, examples, and a stable v1 manifest format.
7676

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
custom: ["https://buy.polar.sh/polar_cl_Mv1gdlG7bw3I70EC9IHtfeSHJj4PEKvA7JAUz23CFhj"]
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Bug Report
2+
description: Something is broken
3+
labels: ["bug"]
4+
body:
5+
- type: markdown
6+
attributes:
7+
value: |
8+
Before filing: check the [capability matrix](https://agentplugins.pages.dev/guide/capability-matrix) — some behaviours are by design.
9+
- type: textarea
10+
id: description
11+
attributes:
12+
label: What happened?
13+
description: A clear description of the bug.
14+
validations:
15+
required: true
16+
- type: textarea
17+
id: reproduce
18+
attributes:
19+
label: Steps to reproduce
20+
placeholder: |
21+
1. Run `agentplugins add ...`
22+
2. See error
23+
validations:
24+
required: true
25+
- type: textarea
26+
id: expected
27+
attributes:
28+
label: Expected behaviour
29+
validations:
30+
required: true
31+
- type: input
32+
id: version
33+
attributes:
34+
label: AgentPlugins version
35+
placeholder: "0.5.0"
36+
validations:
37+
required: true
38+
- type: input
39+
id: harness
40+
attributes:
41+
label: Agent harness(es) affected
42+
placeholder: "Claude Code, Codex, ..."
43+
- type: textarea
44+
id: context
45+
attributes:
46+
label: Additional context

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Documentation
4+
url: https://agentplugins.pages.dev
5+
about: Read the full docs before filing an issue.
6+
- name: Capability Matrix
7+
url: https://agentplugins.pages.dev/guide/capability-matrix
8+
about: Check if a behaviour is by design (⚠️ guided per-harness).
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Feature Request
2+
description: Propose a new capability or improvement
3+
labels: ["feature"]
4+
body:
5+
- type: textarea
6+
id: problem
7+
attributes:
8+
label: Problem or motivation
9+
description: What are you trying to do that you can't do today?
10+
validations:
11+
required: true
12+
- type: textarea
13+
id: solution
14+
attributes:
15+
label: Proposed solution
16+
validations:
17+
required: true
18+
- type: textarea
19+
id: harnesses
20+
attributes:
21+
label: Harnesses this should cover
22+
placeholder: "Claude Code, Codex, OpenCode, Pi Mono (Tier-1) / Copilot, Gemini, Kimi (Tier-2)"
23+
- type: textarea
24+
id: alternatives
25+
attributes:
26+
label: Alternatives considered
27+
- type: textarea
28+
id: context
29+
attributes:
30+
label: Additional context

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## Summary
2+
3+
<!-- What does this PR do? Link the issue: Closes #123 -->
4+
5+
## Changes
6+
7+
<!-- Bullet list of what changed -->
8+
9+
## Test plan
10+
11+
- [ ] `pnpm test` passes
12+
- [ ] `pnpm -r exec tsc --noEmit` passes
13+
- [ ] Capability matrix updated (if adapter behaviour changed)
14+
- [ ] Linked to a refined issue in Project 14
15+
16+
## Notes
17+
18+
<!-- Anything reviewers should know -->

.github/social-preview.snip.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
$ agentplugins add sigilco/agentplugins-ponytail
2+
3+
> AgentPlugins - write once, ship to every AI agent
4+
5+
+ Resolved sigilco/agentplugins-ponytail@0.4.0
6+
+ ponytail: linked to ~/.agents/plugins/ponytail/
7+
8+
Detected 5 harnesses:
9+
+ claude-code ~/.claude/skills/ponytail
10+
+ opencode ~/.config/opencode/skills/ponytail
11+
+ codex ~/.codex/skills/ponytail
12+
+ pimono ~/.pi/skills/ponytail
13+
+ copilot ~/.copilot/skills/ponytail
14+
15+
$ agentplugins list
16+
agentplugins-ponytail v0.4.0 5/5 harnesses

.github/workflows/release.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,8 @@ jobs:
106106
- name: Install dependencies
107107
run: pnpm install --frozen-lockfile
108108

109-
- name: Build workspace dependencies
110-
run: pnpm --filter @agentplugins/core --filter @agentplugins/schema build
111-
112-
- name: Build CLI (tsc)
113-
run: pnpm --filter @agentplugins/cli build
109+
- name: Build all packages (topological)
110+
run: pnpm --filter './packages/**' build
114111

115112
- name: Compile native binary
116113
run: |

.github/workflows/triage.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Triage
2+
3+
on:
4+
issues:
5+
types: [opened, reopened]
6+
pull_request_target:
7+
types: [opened, reopened]
8+
9+
jobs:
10+
label:
11+
name: Auto-label
12+
runs-on: ubuntu-latest
13+
permissions:
14+
issues: write
15+
pull-requests: write
16+
steps:
17+
- name: Label issues by template
18+
if: github.event_name == 'issues'
19+
uses: actions/github-script@v7
20+
with:
21+
script: |
22+
const body = context.payload.issue.body ?? '';
23+
const title = context.payload.issue.title ?? '';
24+
// Templates already inject labels via YAML; this is a fallback.
25+
// If no label was set, apply 'needs-triage'.
26+
const existing = context.payload.issue.labels.map(l => l.name);
27+
if (existing.length === 0) {
28+
await github.rest.issues.addLabels({
29+
owner: context.repo.owner,
30+
repo: context.repo.repo,
31+
issue_number: context.payload.issue.number,
32+
labels: ['needs-triage'],
33+
});
34+
}

.gitignore

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ dist/
99
*.d.ts
1010
*.d.ts.map
1111

12+
# Exceptions: source declaration files (not build artifacts)
13+
!docs/.vitepress/env.d.ts
14+
1215
# pnpm
1316
.pnpm-store/
1417
.pnpm/
@@ -48,11 +51,22 @@ coverage/
4851
storybook-static/
4952
docs/.vitepress/cache/
5053
docs/.vitepress/dist/
51-
docs/public/
54+
docs/public/*
55+
!docs/public/robots.txt
56+
!docs/public/favicon.svg
57+
!docs/public/favicon.ico
58+
!docs/public/og.png
59+
!docs/public/img/
60+
!docs/public/img/logo-dark.png
61+
!docs/public/img/logo-light.png
5262

5363
# Misc
5464
*.local
5565
*.backup
5666

67+
# Session / scratch files
68+
tmp/
69+
5770
# Deepwork session state (ephemeral)
5871
.slim/
72+
.npmrc

0 commit comments

Comments
 (0)