From b0cadae71e9f339446496fb90d91a70b799f80df Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sat, 29 Nov 2025 18:27:08 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 15 ++++++++++++ .mcp.json | 8 +++++++ README.md | 3 +++ commands/linear-agent.md | 19 +++++++++++++++ plugin.lock.json | 49 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 94 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 .mcp.json create mode 100644 README.md create mode 100644 commands/linear-agent.md create mode 100644 plugin.lock.json diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..7ca68f9 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,15 @@ +{ + "name": "linear-agent", + "description": "Long-running agent workflow with Linear. Scaffolds all features upfront, then implements one per session.", + "version": "0.4.0", + "author": { + "name": "Laurynas", + "email": "laurynas@fiberplane.com" + }, + "commands": [ + "./commands" + ], + "mcp": [ + "./.mcp.json" + ] +} \ No newline at end of file diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 0000000..14f256c --- /dev/null +++ b/.mcp.json @@ -0,0 +1,8 @@ +{ + "mcpServers": { + "linear": { + "type": "http", + "url": "https://mcp.linear.app/mcp" + } + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..b07f6ea --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# linear-agent + +Long-running agent workflow with Linear. Scaffolds all features upfront, then implements one per session. diff --git a/commands/linear-agent.md b/commands/linear-agent.md new file mode 100644 index 0000000..b8ee6f8 --- /dev/null +++ b/commands/linear-agent.md @@ -0,0 +1,19 @@ +# Linear Agent Workflow + +Continue or start the Linear agent workflow. + +## Instructions + +1. **Check for state file** (`.claude-linear-agent.json` in project root) + - If exists: read `phase` and `linearId`, continue from current phase + - If not exists: ask user for a Linear project or issue URL to begin + +2. **Invoke the linear-agent skill** to execute the appropriate phase: + - `planning` → Break down brief into Linear issues + - `scaffolding` → Create test stubs, types, directory structure for all features + - `coding` → Fetch issues, select next task, implement one feature + +3. **If no state file and no URL provided**, prompt the user: + > "To start a Linear agent workflow, paste a Linear project or issue URL." + +Always use the linear-agent skill for the actual workflow execution. diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..296445b --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,49 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:fiberplane/claude-code-plugins:linear-agent", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "39d2aa5e17f3ab68b9235342f447f2a201d27940", + "treeHash": "4ee403bf612af89126e7fe19b2b6b3bce02b5049ab2d30861f6db79148bca6cf", + "generatedAt": "2025-11-28T10:16:53.896735Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "linear-agent", + "description": "Long-running agent workflow with Linear. Scaffolds all features upfront, then implements one per session.", + "version": "0.4.0" + }, + "content": { + "files": [ + { + "path": ".mcp.json", + "sha256": "ed48f61f36a8feba5295e8a86de7aa21489c6a1ebc9bc317601e6f1f7a65e1b1" + }, + { + "path": "README.md", + "sha256": "65d864a71257a3caa7ed776f8729d0fa0c1b82856156cf3d57b0131d9e01d8c4" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "b4feaa52c3c8773756fd8f00b64307cc9402d74be471d5ac978a4d11f3f5d843" + }, + { + "path": "commands/linear-agent.md", + "sha256": "90c92c11f620409a1b19a563502686e1f2eeaf936c80171213b1ba1340bee4ef" + } + ], + "dirSha256": "4ee403bf612af89126e7fe19b2b6b3bce02b5049ab2d30861f6db79148bca6cf" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file