Skip to content

docs: chainlink setup and usage for 5 Whys skill#82

Merged
tkellogg merged 3 commits into
mainfrom
strix/five-whys-chainlink-docs
Apr 11, 2026
Merged

docs: chainlink setup and usage for 5 Whys skill#82
tkellogg merged 3 commits into
mainfrom
strix/five-whys-chainlink-docs

Conversation

@strix-tkellogg
Copy link
Copy Markdown
Collaborator

Summary

  • Adds CHAINLINK_SETUP.md to the five-whys builtin skill — covers Rust install, chainlink install, and initializing a dedicated RCA database separate from task-tracking
  • Adds CHAINLINK_USAGE.md — full workflow for creating 5 Whys trees as chainlink subissues, labeling conventions (rca, bedrock, action-item), falsification cascades, cross-analysis querying
  • Updates SKILL.md with a new "Storage" section that routes to chainlink when available, markdown as fallback

Key design decision: Separate databases for RCA vs task tracking. Chainlink uses .chainlink/issues.db relative to the nearest .chainlink/ directory, so ~/rca/ gets its own init. RCA chains and task backlogs serve different purposes — mixing them creates noise in both directions.

Tim's third idea (self-modification file to make chainlink route more obvious if available) — intentionally left out per "ignore me." Can add later if wanted.

Test plan

  • 197 tests pass, 1 skipped
  • Verify chainlink setup instructions work on a fresh machine
  • Verify subissue workflow produces expected tree structure

🤖 Generated with Claude Code

Chainlink gives 5 Whys persistent storage with parent-child
relationships, labels, search, and falsification cascades.

Three changes:
- CHAINLINK_SETUP.md: Rust install, chainlink install, dedicated
  RCA database init (separate from task tracking DBs)
- CHAINLINK_USAGE.md: Full workflow — creating trees as subissues,
  labeling conventions, falsification, cross-analysis querying
- SKILL.md: New "Storage" section pointing to chainlink as preferred
  backend when available, markdown as fallback

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Owner

@tkellogg tkellogg left a comment

Choose a reason for hiding this comment

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

Do you use the relationship types from our chainlink fork?


```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

issue: this needs to go into ~/.zshrc bashrc etc. Also, should include someething for windows.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fixed — shell profile persistence now in the Rust install section (bash + zsh). Also added Windows install instructions.

storage. Trees become issues with parent-child relationships, action items become
trackable issues with labels, and chains survive across sessions.

This is optional. The 5 Whys skill works without chainlink — you can write trees as
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

suggestion: Tell the agent to warn the user that this could take a long time. Also, installing Rust & compiling Rust apps can really bog down their computer.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Added warning before both Rust install and chainlink compile steps. Agents should tell the user it'll take 10-20 min and may slow the machine.

cargo install chainlink-tracker
```

This compiles from source and takes a few minutes. On resource-constrained machines
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

suggestion: Good, yeah, also tell them to warn their operator

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Added explicit 'tell your operator' warning before the compile step.


```bash
# Create a dedicated RCA directory
mkdir -p ~/rca
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

question: should it instead go inside their home repo? Might be better. Just have to make sure it's in the .gitignore

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Changed to rca/ inside the home repo with .gitignore for the SQLite DB. Keeps it discoverable and backed up without polluting git history.


```bash
# Reduce parallel compilation
CARGO_BUILD_JOBS=1 cargo install chainlink-tracker
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

question: Did my chainlink PR get merged? if no, then should we use my fork?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Your upstream PR (dollspace-gay/chainlink#20, typed relations) is still open. Changed install to cargo install --git https://github.com/tkellogg/chainlink.git with a note to switch to cargo install chainlink-tracker once it merges. I was wrong earlier when I said PR #69 was the chainlink PR — that was the open-strix backlog worker, completely different thing.

claude added 2 commits April 11, 2026 01:43
- PATH setup moved to Rust install section with shell profile persistence
- Windows install instructions added
- Warn user/operator about compilation time and system load
- Install from tkellogg/chainlink fork (upstream PR #20 not merged yet)
- DB location changed to rca/ inside home repo with .gitignore
- Troubleshooting section replaces redundant PATH section

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Install from dollspace-gay/chainlink instead of Tim's fork.
The skill doesn't use typed relations — everything works with
built-in chainlink primitives (parent-child, labels, blocking).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tkellogg tkellogg merged commit d9cbf98 into main Apr 11, 2026
@tkellogg tkellogg deleted the strix/five-whys-chainlink-docs branch April 11, 2026 02:05
jptreen pushed a commit to jptreen/open-strix that referenced this pull request Apr 11, 2026
Merged upstream changes:
- PR tkellogg#80: Cycle detection prompts reflection instead of just stopping
- PR tkellogg#81: Five-whys integration into harness failure paths
- PR tkellogg#82: Five-whys chainlink docs
- PR tkellogg#83: Phone book → JSONL migration + alias enrichment

Conflict resolution:
- app.py: Kept both _withhold_final_text (ours) and _last_turn_failure (upstream)
- prompts.py: Preserved auto-send model while adding aliases/failure sections
- tools.py: Added missing file tools to tools list (read_file, glob_files, edit_file, write_file)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@strix-tkellogg strix-tkellogg mentioned this pull request Apr 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants