Help us improve
Share bugs, ideas, or general feedback.
From second-claude-code
Collects URLs, notes, files, or excerpts into PARA-structured knowledge base by extracting 3 key points, finding connections to existing knowledge, and classifying into projects/areas/resources/archives.
npx claudepluginhub unclejobs-ai/second-claude-code --plugin second-claude-codeHow this skill is triggered — by the user, by Claude, or both
Slash command
/second-claude-code:collectThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Collected knowledge must always be classified.**
Processes external resources like articles, blogs, and papers into stored knowledge via quality evaluation, curation, tidying, and routing to storage or codebase application. Use for capturing session knowledge into memory structures.
Captures conversational knowledge to Second Brain on 'remember this', 'save this', or 'brain dump' triggers. Journals verbatim quotes, classifies epistemic types, and updates structured markdown files.
Harvests knowledge from external sources like sibling repos, local directories, files, or web URLs into the project's KB system with provenance tracking.
Share bugs, ideas, or general feedback.
Collected knowledge must always be classified.
Collect a source, reduce it, connect it to existing knowledge, and store it in a PARA-shaped knowledge base.
/second-claude-code:research${CLAUDE_PLUGIN_DATA}/knowledge/ for items with overlapping tags or titles before creating a new entry. If a duplicate exists, update it instead of creating a new one.key_points has exactly 3 items, connections pass the quality gate. If any check fails, fix before saving.| Category | Rule |
|---|---|
project | Active work with a deadline or deliverable |
area | Ongoing responsibility |
resource | Reference material |
archive | Inactive material |
| Flag | Values | Default |
|---|---|---|
--tags | "tag1,tag2" | auto |
--category | project|area|resource|archive | auto |
--search | "query" | off |
--connect | true|false | true |
Data directory:
${CLAUDE_PLUGIN_DATA}is set by the plugin system. If unavailable, fall back to.data/relative to the plugin root. Before writing state files, verify the directory exists withmkdir -p.
${CLAUDE_PLUGIN_DATA}/knowledge/{para-category}/{slug}.jsontitle, source, source_type, collected_at, category, tags, summary, key_points, connectionskey_points must contain exactly 3 itemsEach item is saved as .json (machine-readable index) and .md (YAML frontmatter + readable prose) at the same slug path. See references/para-method.md for the markdown template and search ranking weights.
A connection must name a specific principle, pattern, or concept — not a topic or domain.
| PASS | FAIL |
|---|---|
| "Applies the Observer pattern — both use event-driven decoupling" | "Related to software design" |
| "Shares the PARA progressive summarization principle" | "Also about knowledge management" |
| "Uses the same cold-start mitigation as Netflix recommendations" | "Similar to AI" |
If no specific connection exists, set connections to an empty array. Never force a connection.
Trigger: pass --search "query" instead of a source to retrieve rather than save.
Invocation: /second-claude-code:collect --search "query"
What it does: scans all stored JSON under ${CLAUDE_PLUGIN_DATA}/knowledge/, ranks results by tag overlap and title similarity, and returns the top matches with their summary and PARA category.
See references/para-method.md for full ranking weights.
resource.analyst: { model: haiku, tools: [WebFetch], constraint: "produce exactly 3 key points", dispatch: required }
connector: { model: haiku, tools: [Glob, Read], constraint: "name a specific shared concept", dispatch: required }
Dispatch requirement: Both subagents MUST be dispatched as separate agents (e.g., via superpowers:dispatching-parallel-agents). Running either inline violates isolation: the connector must not see the analyst's framing, only the raw source and existing knowledge base. If subagent dispatch is unavailable, run them sequentially with explicit context barriers — pass only the original source URL/text to the connector, never the analyst's summary.