Skip to content
Merged
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
116 changes: 116 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
{
"name": "refact-os",
"interface": {
"displayName": "Refact Toolkit"
},
"plugins": [
{
"name": "base",
"source": {
"source": "local",
"path": "./plugins/base"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "client",
"source": {
"source": "local",
"path": "./plugins/client"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "ops",
"source": {
"source": "local",
"path": "./plugins/ops"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "insights",
"source": {
"source": "local",
"path": "./plugins/insights"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "nextjs",
"source": {
"source": "local",
"path": "./plugins/nextjs"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "wordpress",
"source": {
"source": "local",
"path": "./plugins/wordpress"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "testing",
"source": {
"source": "local",
"path": "./plugins/testing"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "migrate",
"source": {
"source": "local",
"path": "./plugins/migrate"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "memory",
"source": {
"source": "local",
"path": "./plugins/memory"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}
20 changes: 10 additions & 10 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"name": "refact-os",
"version": "2.12.1",
"version": "2.13.0",
"owner": {
"name": "Refact Developer",
"email": "dev@refact.co"
},
"plugins": [
{
"name": "base",
"version": "1.7.0",
"version": "1.9.0",
"source": "./plugins/base",
"description": "Base toolkit: git workflow, code-dev gates, Asana, env sync, learnings, client updates, slim project config, Refact Control MCP setup + the /base:refact command + TS/JS LSP.",
"author": {
Expand All @@ -30,7 +30,7 @@
},
{
"name": "client",
"version": "1.1.2",
"version": "1.2.0",
"source": "./plugins/client",
"description": "Client deliverables: discovery-first proposals and branded print-ready PDF rendering.",
"author": {
Expand All @@ -48,7 +48,7 @@
},
{
"name": "ops",
"version": "1.1.0",
"version": "1.2.0",
"source": "./plugins/ops",
"description": "Ops integrations: Cloudflare client-zone operations and Sentry backlog triage.",
"author": {
Expand All @@ -67,7 +67,7 @@
},
{
"name": "insights",
"version": "1.1.0",
"version": "1.2.0",
"source": "./plugins/insights",
"description": "Site insights: SEO (Ahrefs, Search Console), web analytics (GA4), tag management (GTM), and PageSpeed/Core Web Vitals.",
"author": {
Expand All @@ -89,7 +89,7 @@
},
{
"name": "nextjs",
"version": "1.0.2",
"version": "1.1.0",
"source": "./plugins/nextjs",
"description": "Next.js: scaffold or adopt an app, run/diagnose it, and set up Vercel or Netlify deploys.",
"author": {
Expand All @@ -107,7 +107,7 @@
},
{
"name": "wordpress",
"version": "1.1.0",
"version": "1.2.0",
"source": "./plugins/wordpress",
"description": "WordPress: local wp-env stack, safe plugin updates with QA + rollback, Kinsta/WP Engine deploy workflows + PHP LSP.",
"author": {
Expand All @@ -127,7 +127,7 @@
},
{
"name": "testing",
"version": "1.2.0",
"version": "1.3.0",
"source": "./plugins/testing",
"description": "Testing: TDD harness (plan -> red-green-refactor) plus WordPress characterization and real-plugin integration tests.",
"author": {
Expand All @@ -146,7 +146,7 @@
},
{
"name": "migrate",
"version": "1.1.0",
"version": "1.2.0",
"source": "./plugins/migrate",
"description": "One-time migration: move a refact-os-scaffolded project off the npm scaffold and onto this plugin marketplace — detect, back up, remove the generated trees, slim the config, and print the pack install commands.",
"author": {
Expand All @@ -164,7 +164,7 @@
},
{
"name": "memory",
"version": "1.0.0",
"version": "1.1.0",
"source": "./plugins/memory",
"description": "Memory workflows on the refact-memory mount: ingest evidence, tracker entries, canonical-record edits, ticket anchor + outcome, status scan — plus a SessionStart hook that keeps the local clone fresh.",
"author": {
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/validate-plugins.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Validate plugins

on:
pull_request:
push:
branches: [main]

permissions:
contents: read

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: python -m pip install -r requirements-dev.txt
- run: node scripts/sync-codex.mjs --check
- run: python scripts/check-plugins.py
- run: node --test tests/plugin-support.test.mjs
54 changes: 54 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Refact Toolkit

Use simple English, short sentences, and common words. Keep exact commands and
file names accurate. Explain a required technical term in plain English.

This repository is a plugin marketplace for Claude Code and Codex. It has nine
packs under `plugins/`, with shared skills and helper files. It is not a web app.

## Source files

- Edit each skill once in `plugins/<pack>/skills/<name>/SKILL.md`.
- Keep its `name` equal to its folder name. Preserve the project's custom
workflow metadata; the native loaders use `name` and `description`.
- Every skill links to its pack's `references/plugin-runtime.md`. Edit the
common source at `shared/plugin-runtime.md`, then regenerate the copies.
- Keep support files inside the plugin root so installed copies are complete.
- Reusable agent briefs live under `plugins/<pack>/agents/`.
- This marketplace is the source of truth for skills. Do not restore old
scaffold assumptions such as `agent/skills/`, `refact:sync`, or `.cursor` adapters.
- Keep `next_skills` links within the same pack. Cross-pack workflows must check
whether the needed skill is available in the current task.
- `.refact-os.json` holds optional project structure and stack information.
Keep secrets in the project's environment or credential store.
- Claude hooks are declared explicitly in `.claude-plugin/plugin.json` and live
at `hooks/claude-hooks.json`. Do not add a default `hooks/hooks.json`: Codex
would load it too. Claude language servers remain in `.lsp.json`.

## Releases and generated files

The version in each pack's `.claude-plugin/plugin.json` is the version source.
Bump changed packs and the Claude marketplace's top-level version for a release.
Run `node scripts/sync-codex.mjs` to sync catalog versions, native Codex manifests,
the Codex marketplace, and shared runtime copies. Commit those generated files
so installation from Git needs no build step. Do not edit them independently.

Native manifests live at `plugins/<pack>/.codex-plugin/plugin.json`.
The root `.agents/plugins/marketplace.json` points to the same pack directories
as `.claude-plugin/marketplace.json`.

## Validation

Use a temporary Python environment and install `requirements-dev.txt`, then run:

```bash
node scripts/sync-codex.mjs --check
python scripts/check-plugins.py
node --test tests/plugin-support.test.mjs
```

For installation changes, verify catalog discovery and installation with Codex.
For project settings, test the actual skill list in a trusted project. A CLI
catalog list alone does not prove which skills a task will load.

Read `docs/codex.md` for installation, updates, and project-specific enablement.
Loading
Loading