brainstorm-path · git:20260616.86d0eb3 · 2026-06-16 · sha256 58767aeb6ab5e859
brainstorm-path git:20260616.86d0eb3C
Immutable. This exact content is served forever at /api/v1/blob/58767aeb6ab5e859.
# Skill: Brainstorm Path
Manage brainstorm decision paths — recording rounds, querying history, creating branches, evaluating thresholds, and rendering visualizations.
## Overview
The brainstorm path system records the evolution of innovation candidates across brainstorming rounds. It enables:
- Round-by-round recording with scores and decisions
- Threshold-based pass/iterate decisions
- Branching from any historical node
- Restoring abandoned innovations
- Visualizing the complete decision path
All operations are performed via the `oh-my-patent` CLI, which wraps the TypeScript APIs. **Do not manually write JSON files** — use the CLI commands below.
## CLI Access
```bash
node <oh-my-patent-dir>/dist/cli.js path <subcommand> [options]
```
Where `<oh-my-patent-dir>` is the path to the oh-my-patent plugin directory (e.g., `./oh-my-patent` from the workspace root).
## Subcommands
### Initialize a new path
```bash
node dist/cli.js path init <project-path>
```
Creates the `.brainstorm/` directory structure with `path.json`, `nodes/`, and `snapshots/`.
Output: `{ "ok": true, "pathId": "path-..." }`
### Record a brainstorm round
```bash
node dist/cli.js path record <project-path> \
--round <N> \
--data '<json-string>'
```
Or read from a file:
```bash
node dist/cli.js path record <project-path> \
--round <N> \
--data @/path/to/round-data.json
```
The `--data` JSON structure:
```json
{
"projectId": "05-crypto-hsm-cache-concurrency",
"topic": "加密机缓存并发优化",
"agentOutputs": [
{
"agentId": "patent-innovation-architect",
"outputFile": "references/brainstorm_round1_innovation_architect.md",
"summary": "生成3个候选方案",
"keyPoints": ["A1: 三级缓存架构", "A2: 失效协议"]
}
],
"innovations": [
{
"id": "INN-001",
"title": "安全策略约束的多级缓存并发控制系统",
"problem": "HSM高并发场景重复计算、缓存风暴",
"coreSolution": ["三级缓存架构", "单flight并发控制"],
"differences": ["vs R6/R7: HSM场景特化"],
"status": "active"
}
],
"scores": [
{
"innovationId": "INN-001",
"novelty": 8,
"creativity": 8,
"practicality": 9,
"businessValue": 7,
"weightedScore": 8.1
}
],
"decision": {
"action": "ITERATE",
"reason": "综合分 8.0 < 阈值 8.5",
"recommendations": ["强化缓存键策略绑定的差异性描述"]
}
}
```
Output: `{ "ok": true, "nodeId": "round-1", "pathId": "...", "totalNodes": 1, "status": "active" }`
### Show path overview
```bash
node dist/cli.js path overview <project-path>
```
Returns JSON with: totalRounds, currentRound, status, innovationEvolution, scoreProgression.
### Show node detail
```bash
node dist/cli.js path node <project-path> <node-id>
```
Example: `node dist/cli.js path node ./projects/05-crypto-hsm-cache-concurrency round-1`
### Show innovation history
```bash
node dist/cli.js path innovation <project-path> <innovation-id>
```
Example: `node dist/cli.js path innovation ./projects/05-crypto-hsm-cache-concurrency INN-001`
### List all innovations
```bash
node dist/cli.js path innovations <project-path>
```
Returns a JSON array of all innovation summaries with their status and scores.
### Create a branch
```bash
node dist/cli.js path branch <project-path> \
--from-node round-2 \
--reason "探索不同的整合策略"
```
Output: `{ "ok": true, "branchId": "path-...-branch-1", "parentPathId": "...", ... }`
### List branches
```bash
node dist/cli.js path branches <project-path>
```
### Restore an abandoned innovation
```bash
node dist/cli.js path restore <project-path> \
--node round-1 \
--innovation INN-003
```
### Evaluate threshold for a round
```bash
node dist/cli.js path threshold <project-path> --round <N>
```
Evaluates all innovation scores in the given round against default thresholds (passToDraft: 8.5, novelty red-line: 6.0, creativity red-line: 6.0). Returns decisions and improvement suggestions.
### Visualize the path (box-drawing)
```bash
node dist/cli.js path visualize <project-path> [--mode overview|node|innovation|branch|dashboard] [--target <id>]
```
Renders a formatted box-drawing visualization to stdout. Modes:
- `overview` (default): Full timeline with score sparklines
- `node`: Single node detail
- `innovation`: Innovation evolution history
- `branch`: Branch overview
- `dashboard`: Combined overview + latest node + top innovation
### Render as Markdown
```bash
node dist/cli.js path markdown <project-path> [--mode overview|node|innovation|branch] [--target <id>] [--output <file>]
```
Renders a Markdown report. Same modes as visualize but in Markdown format. Use `--output` to write to a file.
## Integration with Agents
### patent-path-recorder
After each brainstorm round, the Moderator should call:
```bash
node dist/cli.js path record <project-path> --round <N> --data '<round-data-json>'
```
**Do not manually create .brainstorm/ JSON files.** The CLI handles atomicity and consistency.
### patent-brainstorm-moderator
After scoring, use threshold evaluation:
```bash
node dist/cli.js path threshold <project-path> --round <N>
```
This returns the pass/iterate/force-pass decision with improvement suggestions.
### Archimedes (orchestrator)
To view the current brainstorm state:
```bash
node dist/cli.js path overview <project-path>
node dist/cli.js path visualize <project-path> --mode dashboard
```
To branch or restore:
```bash
node dist/cli.js path branch <project-path> --from-node <id> --reason "<text>"
node dist/cli.js path restore <project-path> --node <id> --innovation <id>
```
## File Structure
After initialization and recording, the project directory will contain:
```
<project>/
├── .brainstorm/
│ ├── path.json # Path metadata and edges
│ ├── nodes/
│ │ ├── round-1.json
│ │ └── round-2.json
│ ├── snapshots/
│ │ ├── round-1-innovations.json
│ │ └── round-2-innovations.json
│ └── branches/
│ ├── index.json # Branch registry
│ └── path-...-branch-1/
│ └── nodes/ # Branch-specific node copies
└── references/
└── brainstorm_round1_*.md # Agent raw outputs
```