Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
97 changes: 89 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,31 +56,112 @@ Session 50: Correction rate near zero. Wiki has 200 cited claims.

## Install

Pick your agent. Every path drops the same 34 skills + 22 commands + 37 hook scripts into the right place.

### Claude Code

```bash
/plugin marketplace add rohitg00/pro-workflow
/plugin install pro-workflow@pro-workflow
```

<details>
<summary>Other install methods</summary>
### Cursor

```bash
# Cursor
/add-plugin pro-workflow
```

# Any agent via SkillKit
npx skillkit install pro-workflow
Or search `pro-workflow` in the plugin marketplace.

### Codex CLI

```bash
/plugins
pro-workflow
```

Select **Install Plugin** when it appears.

### Codex App

Plugins sidebar &rarr; **Coding** category &rarr; find **Pro Workflow** &rarr; click `+`.

### GitHub Copilot CLI

```bash
copilot plugin marketplace add rohitg00/pro-workflow
copilot plugin install pro-workflow@pro-workflow
```

### Factory Droid

```bash
droid plugin marketplace add https://github.com/rohitg00/pro-workflow
droid plugin install pro-workflow@pro-workflow
```

### Gemini CLI

```bash
gemini extensions install https://github.com/rohitg00/pro-workflow
```

# Manual
### OpenCode

```bash
curl -fsSL https://raw.githubusercontent.com/rohitg00/pro-workflow/main/.opencode/INSTALL.md
```

Follow the printed steps (drops the skills under `.opencode/skill/`).

### Any other agent (28 more via SkillKit)

```bash
npx skillkit install pro-workflow --agent <name>
```

Supported: `antigravity`, `amp`, `clawdbot`, `cline`, `codebuddy`, `commandcode`, `continue`, `crush`, `goose`, `kilo`, `kiro-cli`, `mcpjam`, `mux`, `neovate`, `openhands`, `pi`, `qoder`, `qwen`, `roo`, `trae`, `universal`, `vercel`, `windsurf`, `zencoder`. Use `--agent universal` to drop a portable bundle.

Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
<details>
<summary>Manual install (any agent, any OS)</summary>

```bash
git clone https://github.com/rohitg00/pro-workflow.git /tmp/pw
cp -r /tmp/pw/templates/split-claude-md/* ./.claude/

# Build SQLite-backed components
cd ~/.claude/plugins/*/pro-workflow && npm install && npm run build
cd /tmp/pw && npm install && npm run build
cp -r /tmp/pw/skills ~/.claude/skills/
cp -r /tmp/pw/commands ~/.claude/commands/
cp /tmp/pw/hooks/hooks.json ~/.claude/hooks.json
```

</details>

### First-run smoke test (any agent)

```bash
/doctor # confirms SQLite store, hooks, skills load
/wrap-up # runs the end-of-session ritual (no-op on fresh install)
```

If `/doctor` reports `KB: missing`, run `cd ~/.claude/plugins/*/pro-workflow && npm install && npm run build` &mdash; the SQLite components need a build step a handful of marketplaces skip.

---

## What to type first

After install you have **34 auto-trigger skills** and **22 slash commands**. You don't need to memorize them; the agent picks the right skill from your prompt. The five commands below cover 80% of daily use:

| When | Command | What it does |
|---|---|---|
| **Wrong correction repeats** | `/learn-rule` | Capture the correction as a rule. Loaded on every future `SessionStart`. |
| **End of a coding session** | `/wrap-up` | Audit changes, persist learnings, write a handoff doc. |
| **Researching a topic** | `/wiki init <slug>` | Spin up a persistent FTS5 wiki. Auto-injected when you mention the topic later. |
| **Stuck on a hard bug** | `/develop` | Research &rarr; Plan &rarr; Implement phases with validation gates. |
| **Before a PR** | `/smart-commit` | Quality gates, staged review, conventional commit message. |

Full list: [`commands/`](./commands) &middot; [`skills/`](./skills) &middot; [`/list`](./commands/list.md) inside any session.

---

## 60-second tour
Expand Down
18 changes: 17 additions & 1 deletion scripts/session-start.js
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,23 @@ async function main() {
// Not a git repo or git not available
}

log('[ProWorkflow] Ready. Use /wrap-up before ending, /learn to capture corrections.');
const stateDir = path.join(os.homedir(), '.pro-workflow');
const firstRunFlag = path.join(stateDir, '.welcomed');
if (!fs.existsSync(firstRunFlag)) {
try { fs.mkdirSync(stateDir, { recursive: true }); } catch (e) {}
log('');
log('[ProWorkflow] First run detected. Five commands to know:');
log(' /learn-rule capture a correction so it never repeats');
log(' /wrap-up end-of-session ritual (audit + persist + handoff)');
log(' /wiki init start a persistent FTS5 research wiki');
log(' /develop research -> plan -> implement with gates');
log(' /smart-commit quality-gated conventional commit');
log('[ProWorkflow] Run /doctor to verify install. Full list: /list');
log('');
try { fs.writeFileSync(firstRunFlag, new Date().toISOString()); } catch (e) {}
} else {
Comment on lines +126 to +137

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Don’t silently swallow first-run marker write failures.

If directory creation or marker write fails, users will repeatedly see “first run” with no clue why. Log a warning in these catch blocks so setup issues are diagnosable.

Suggested patch
-    try { fs.mkdirSync(stateDir, { recursive: true }); } catch (e) {}
+    try { fs.mkdirSync(stateDir, { recursive: true }); } catch (e) {
+      log(`[ProWorkflow] Warning: could not create state dir at ${stateDir}: ${e.message}`);
+    }
@@
-    try { fs.writeFileSync(firstRunFlag, new Date().toISOString()); } catch (e) {}
+    try { fs.writeFileSync(firstRunFlag, new Date().toISOString()); } catch (e) {
+      log(`[ProWorkflow] Warning: could not persist welcome flag at ${firstRunFlag}: ${e.message}`);
+    }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
try { fs.mkdirSync(stateDir, { recursive: true }); } catch (e) {}
log('');
log('[ProWorkflow] First run detected. Five commands to know:');
log(' /learn-rule capture a correction so it never repeats');
log(' /wrap-up end-of-session ritual (audit + persist + handoff)');
log(' /wiki init start a persistent FTS5 research wiki');
log(' /develop research -> plan -> implement with gates');
log(' /smart-commit quality-gated conventional commit');
log('[ProWorkflow] Run /doctor to verify install. Full list: /list');
log('');
try { fs.writeFileSync(firstRunFlag, new Date().toISOString()); } catch (e) {}
} else {
try { fs.mkdirSync(stateDir, { recursive: true }); } catch (e) {
log(`[ProWorkflow] Warning: could not create state dir at ${stateDir}: ${e.message}`);
}
log('');
log('[ProWorkflow] First run detected. Five commands to know:');
log(' /learn-rule capture a correction so it never repeats');
log(' /wrap-up end-of-session ritual (audit + persist + handoff)');
log(' /wiki init start a persistent FTS5 research wiki');
log(' /develop research -> plan -> implement with gates');
log(' /smart-commit quality-gated conventional commit');
log('[ProWorkflow] Run /doctor to verify install. Full list: /list');
log('');
try { fs.writeFileSync(firstRunFlag, new Date().toISOString()); } catch (e) {
log(`[ProWorkflow] Warning: could not persist welcome flag at ${firstRunFlag}: ${e.message}`);
}
} else {
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@scripts/session-start.js` around lines 126 - 137, The try/catch around
fs.mkdirSync(stateDir, { recursive: true }) and fs.writeFileSync(firstRunFlag,
...) currently swallow errors; update both catch blocks to log a warning
including the error and the path (stateDir or firstRunFlag) so failures are
visible. In each catch, call the existing log function (or console.warn) with a
clear message like "[ProWorkflow] Warning: failed to create stateDir <path>:
<error>" and "[ProWorkflow] Warning: failed to write firstRunFlag <path>:
<error>" so operators can diagnose setup problems.

log('[ProWorkflow] Ready. Use /wrap-up before ending, /learn to capture corrections.');
}

process.exit(0);
}
Expand Down