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
12 changes: 0 additions & 12 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,6 @@
},
"category": "Productivity"
},
{
"name": "effect-kit",
"source": {
"source": "local",
"path": "./plugins/effect-kit"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
},
{
"name": "plan-lifecycle",
"source": {
Expand Down
28 changes: 0 additions & 28 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,34 +35,6 @@
"codex"
]
},
{
"name": "effect-kit",
"source": "./plugins/effect-kit",
"description": "Cross-tool Effect skill kit: Effect 3.x setup (effect-ts-setup), patterns (effect-ts-specialist), and porting (effect-ts-port), plus version-gated Effect v4 beta guidance (effect-v4).",
"version": "0.5.0",
"author": {
"name": "Eduardo Marquez"
},
"license": "MIT",
"homepage": "https://github.com/DocksDocks/docks",
"repository": "https://github.com/DocksDocks/docks",
"keywords": [
"effect",
"effect-ts",
"typescript",
"skills",
"cross-tool",
"codex"
],
"category": "engineering-workflows",
"tags": [
"effect",
"typescript",
"cross-tool",
"skills",
"codex"
]
},
{
"name": "plan-lifecycle",
"source": "./plugins/plan-lifecycle",
Expand Down
12 changes: 6 additions & 6 deletions .github/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ resolve to plus the independent `targeting-contracts` job; `validate` joins both
prerequisites without rerunning the gate. Core owns `scripts/tests/plan-cli.mjs`
plus the `bounded-workflows` case and the `plan-workspace-template` comparison
between `docs/PLAN.md` and the plugin plan template in
`scripts/tests/plan-skill-phases.mjs`, the joint Docks/Effect Kit
trigger-collision audit, the plugin gates, and JavaScript quality. Manual
`scripts/tests/plan-skill-phases.mjs`, the Docks trigger-collision audit, the
plugin gates, and JavaScript quality. Manual
dispatches run one full gate alongside the targeting contract
before the same join. Tag pushes run one registry-resolved plugin gate; the join
requires the targeting contract to be skipped there.
Expand Down Expand Up @@ -53,7 +53,7 @@ lane list is duplicated in YAML.
(context tree, no-bespoke-gates, durable anchors, author tooling, observability,
test-contract registry, unit tests), and the CI targeting contract. Cross-plugin
by nature and cheap (~10 s), so it is never skipped.
- `core`: Docks, effect-kit and plan-lifecycle — their plugin gates, the plan CLI
- `core`: Docks and plan-lifecycle — their plugin gates, the plan CLI
contract, the bounded-workflows case, the plan-workspace-template comparison
between `docs/PLAN.md` and the plugin plan template for three skills and two
reviewer wrappers, collision audits, and JavaScript quality.
Expand All @@ -76,9 +76,9 @@ ownership requires corresponding workflow and targeting-contract changes.

The separate targeting-contract job runs this test without `--unit` for pull
requests and manual (`workflow_dispatch`) validation, then feeds its result
into the single authoritative `validate` join. Its nested effect-kit timing
contract stays out of `ci.mjs` and release-tag targeted gates; a tag push skips
the job, and the join accepts that expected skip.
into the single authoritative `validate` join. Its timing contract stays out of
`ci.mjs` and release-tag targeted gates; a tag push skips the job, and the join
accepts that expected skip.

## Cache behavior

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
branches: [main]
push:
tags:
- '*--v*' # any <plugin>--v<version> release tag (docks--v*, effect-kit--v*, ...)
- '*--v*' # any <plugin>--v<version> release tag (docks--v*, plan-lifecycle--v*, ...)
workflow_dispatch:

# Least privilege: every validation job is read-only.
Expand Down
2 changes: 0 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ Node 24 remains the validator runtime and matches CI's `node-version`; Bun 1.4.0
│ ├── skills/ (cross-tool) surfaced in every runtime — incl. security/refactor/skill-agent-pipeline pipelines
│ └── hooks/ (cross-tool) context-tree-nudge PostToolUse hook (Claude + Codex)
├── plugins/plan-lifecycle/ GitHub-issue plan lifecycle plugin (cross-tool): three skills, shipped plan.mjs, v3 contract reference, and two read-only reviewer wrappers under agents/; self-versioned with a closed compatibility.json checked by its self-test
├── plugins/effect-kit/ Effect-TS skill kit plugin (cross-tool): effect-ts-setup / effect-ts-specialist / effect-ts-port (skills-only; depends on docks for plan-lifecycle + authoring skills); self-versioned
├── .claude-plugin/marketplace.json Claude marketplace catalog
├── .agents/plugins/marketplace.json Codex marketplace catalog
├── .agents/skills/ project-local skills (canonical, multi-tool)
Expand All @@ -43,7 +42,6 @@ Per-area conventions load lazily from nested `AGENTS.md` nodes. Each is paired w
|---|---|
| `docs/AGENTS.md` | plan-record routing, GitHub issue backend, frozen pre-GitHub archive |
| `plugins/docks/skills/AGENTS.md` | skill authoring — description CSO, frontmatter, body rules, scoring |
| `plugins/effect-kit/skills/AGENTS.md` | effect-kit skill authoring — Effect 3.x plus version-gated Effect v4 conventions |
| `plugins/plan-lifecycle/skills/AGENTS.md` | plan-lifecycle skill authoring — the three lifecycle skills, contract sync, fail-loud routing |
| `scripts/AGENTS.md` | validators, edit→release workflow, double-layer gating, versioning |
| `.github/AGENTS.md` | CI trigger model, keep-in-sync with `ci.mjs` |
Expand Down
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,12 @@ here neither depend on it nor reference it.

## Platform support

The three plugins that ship from this repository support Linux and macOS only:
The two plugins that ship from this repository support Linux and macOS only:

| Plugin | Supported hosts |
|---|---|
| `docks` | Linux and macOS only |
| `plan-lifecycle` | Linux and macOS only |
| `effect-kit` | Linux and macOS only |

After install, the pipeline skills are user-invocable — ask "run a security audit", "refactor `src/`", or "audit my skills", or invoke `security` / `refactor` / `skill-agent-pipeline` directly. Every other skill auto-triggers by description match; namespacing is invisible at runtime.

Expand Down Expand Up @@ -116,8 +115,7 @@ The complete contract lives in `docs/PLAN.md`.
│ │ ├── .claude-plugin/plugin.json
│ │ ├── skills/ ← cross-tool skills
│ │ └── README.md ← plugin-facing docs
│ ├── plan-lifecycle/ ← GitHub-issue plan lifecycle plugin (three skills + plan.mjs + marker contract + two read-only reviewer wrappers)
│ └── effect-kit/ ← Effect-TS skill kit plugin
│ └── plan-lifecycle/ ← GitHub-issue plan lifecycle plugin (three skills + plan.mjs + marker contract + two read-only reviewer wrappers)
├── scripts/ ← plugin-author tooling (NOT shipped to users)
│ ├── ci.mjs / release.mjs ← orchestrators (the gate ci.yml runs)
│ ├── skills/guard.mjs, agents/guard.mjs + score.mjs
Expand Down Expand Up @@ -153,7 +151,7 @@ Node 24 remains the validator runtime and matches CI's `node-version`; Bun 1.4.0

`--per-file` on a scorer prints one `<name> <score>` line per item — useful for spotting drift after an edit. `node scripts/ci.mjs` runs the full local gate (guards + scorers + manifest + idempotency); `ci.yml` runs that same file on CI.

On a PR to `main`, CI runs only the shards the changed paths resolve to — the repo-wide checks always, plus the lane owning any plugin you touched. On a `<plugin>--v<version>` release tag (docks, plan-lifecycle and effect-kit each tag independently), it runs the repo-wide shard plus that plugin's own gate. See `.github/workflows/ci.yml`; full trigger model below.
On a PR to `main`, CI runs only the shards the changed paths resolve to — the repo-wide checks always, plus the lane owning any plugin you touched. On a `<plugin>--v<version>` release tag (docks and plan-lifecycle tag independently), it runs the repo-wide shard plus that plugin's own gate. See `.github/workflows/ci.yml`; full trigger model below.

## Versioning + releases

Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
"ci": "node scripts/ci.mjs",
"guard:skills": "node scripts/skills/guard.mjs plugins/docks/skills",
"score:skills": "node plugins/docks/skills/productivity/write-skill/scripts/skill-guard.mjs score --per-file plugins/docks/skills",
"format:js": "biome format --write scripts tests plugins/effect-kit/test plugins/plan-lifecycle/test plugins/docks/hooks package.json biome.json",
"lint:js": "biome lint scripts tests plugins/effect-kit/test plugins/plan-lifecycle/test plugins/docks/hooks plugins/plan-lifecycle/skills/productivity/plan-manager/scripts plugins/docks/skills/productivity/write-skill/scripts",
"check:js": "biome ci scripts tests plugins/effect-kit/test plugins/plan-lifecycle/test plugins/docks/hooks package.json biome.json && biome lint plugins/plan-lifecycle/skills/productivity/plan-manager/scripts plugins/docks/skills/productivity/write-skill/scripts",
"format:js": "biome format --write scripts tests plugins/plan-lifecycle/test plugins/docks/hooks package.json biome.json",
"lint:js": "biome lint scripts tests plugins/plan-lifecycle/test plugins/docks/hooks plugins/plan-lifecycle/skills/productivity/plan-manager/scripts plugins/docks/skills/productivity/write-skill/scripts",
"check:js": "biome ci scripts tests plugins/plan-lifecycle/test plugins/docks/hooks package.json biome.json && biome lint plugins/plan-lifecycle/skills/productivity/plan-manager/scripts plugins/docks/skills/productivity/write-skill/scripts",
"test:unit": "node --test --test-concurrency=4 scripts/tests/unit/*.test.mjs",
"test:observability": "node scripts/tests/ci-observability.mjs",
"test:contracts": "node scripts/tests/test-contracts.mjs",
Expand Down
3 changes: 1 addition & 2 deletions plugins/docks/skills/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,7 @@ sync). Under this tree, `refactor`, `security`, `context-tree`, and
`skill-agent-pipeline` are lifecycle ROUTES: each carries one byte-identical
absent-lifecycle prerequisite paragraph, asserted verbatim by
`scripts/tests/plan-skill-phases.mjs` and the plan-lifecycle self-test. Change
that paragraph only in lockstep across all six routes (these four plus
effect-kit's `effect-ts-port` and `effect-ts-setup`) and both validators.
that paragraph only in lockstep across all four routes and both validators.

## Cross-tool wording (Claude Code + Codex)

Expand Down
4 changes: 2 additions & 2 deletions plugins/docks/skills/productivity/context-tree/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ description: "Use when a repo's root CLAUDE.md/AGENTS.md grew too large and per-
user-invocable: true
metadata:
pattern: meta-skill
updated: "2026-08-20"
content_hash: "bb974165ae5cf79189297cd40b61580607e34956d1e9a5f12092ae28a8a5bbc7"
updated: "2026-08-24"
content_hash: "58e996cd6b48c0ed4ae199adaf0fc18fe8b12f096dd4551221158f280658da2c"
---

# Context Tree — lazy per-folder AGENTS.md + CLAUDE.md
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ Prefer ONE node per major folder, not one per subfolder. Roll child conventions

## This repo's nodes (dogfood reference)

`docs/` · `plugins/docks/skills/` · `plugins/effect-kit/skills/` · `plugins/plan-lifecycle/skills/` · `scripts/` · `.github/`. The set drifts as plugins land — re-derive it with `find . -name CLAUDE.md -not -path "*/node_modules/*"` (every hit except the root file is a node).
`docs/` · `plugins/docks/skills/` · `plugins/plan-lifecycle/skills/` · `scripts/` · `.github/`. The set drifts as plugins land — re-derive it with `find . -name CLAUDE.md -not -path "*/node_modules/*"` (every hit except the root file is a node).

Not a node: `plugins/docks/agents/` — `claude plugin validate --strict` lints every `*.md` under a plugin's `agents/` as a subagent, so an AGENTS.md pair there fails validation; its authoring rules live in the repo root file instead. A tool that lints every markdown file in a folder makes that folder node-ineligible — check before scaffolding.
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ Edit the node, not this list, when a folder's rules change.
|---|---|
| `docs/` | plan-record routing + issue-body contract |
| `plugins/docks/skills/` | skill authoring + scoring |
| `plugins/effect-kit/skills/` | effect-kit skill authoring |
| `plugins/plan-lifecycle/skills/` | plan-lifecycle skill authoring |
| `scripts/` | validator / CI tooling contract |
| `.github/` | CI workflow triggers |
Expand Down
22 changes: 0 additions & 22 deletions plugins/effect-kit/.claude-plugin/plugin.json

This file was deleted.

15 changes: 0 additions & 15 deletions plugins/effect-kit/.codex-plugin/plugin.json

This file was deleted.

15 changes: 0 additions & 15 deletions plugins/effect-kit/skills/AGENTS.md

This file was deleted.

1 change: 0 additions & 1 deletion plugins/effect-kit/skills/CLAUDE.md

This file was deleted.

Loading