Skip to content

feat: onchain random idea picker, dual-state search & streamlined publish flow - #2

Open
y4motion wants to merge 3 commits into
intuition-box:mainfrom
y4motion:feat/onchain-random-picker-and-publish-flow
Open

feat: onchain random idea picker, dual-state search & streamlined publish flow#2
y4motion wants to merge 3 commits into
intuition-box:mainfrom
y4motion:feat/onchain-random-picker-and-publish-flow

Conversation

@y4motion

@y4motion y4motion commented Apr 30, 2026

Copy link
Copy Markdown

Summary

Enhances the ideation skill with onchain knowledge graph integration, a random idea picker mode, and a streamlined publishing workflow.

Addresses Mission 03C — Skill Enhancement from the Intuition Missions board.

What's Changed

🎲 Random Idea Picker (Mode B)

  • New entry point: users can say "random idea", "inspire me", or "what should I build"
  • Queries the Intuition mainnet GraphQL API for ideas published as atoms with the [Idea] → [top project ideas for] → [Intuition] triple pattern
  • Shows community backing (staker count, $TRUST staked)
  • Falls back to GitHub ideas repo if onchain list is empty
  • Supports re-rolling (up to 5 times) or switching to full ideation mode

🔍 Dual-State Checking (Step 1b)

  • Check 1: Onchain Knowledge Graph — searches atoms by keyword, ordered by vault shares
  • Check 2: GitHub Ideas Repository — searches issues/PRs
  • Check 3: Onchain Ideas List — checks if idea already exists in the curated list
  • Prevents duplicate work and surfaces existing community interest
  • Clear guidance for each scenario (exists onchain, exists on GitHub only, fresh)

💰 Streamlined Publish Flow (Step 5)

  • Pre-flight checks — queries atom cost, triple cost, curve ID, and checks for existing atoms BEFORE any user interaction
  • Cost transparency — shows exact $TRUST costs upfront with clear summary
  • Duplicate prevention — detects existing atoms and reuses them instead of failing
  • Batch triple creation — creates all relationship triples efficiently
  • Deposit preview — shows exact shares the user will receive before executing
  • Ideas list linking — auto-creates [Idea] → [top project ideas for] → [Intuition] triple for discoverability

🛡️ Enhanced Error Handling

  • IPFS pin failures (with fallback)
  • Insufficient $TRUST balance (with guidance)
  • Atom already exists (reuse instead of fail)
  • Transaction reverts (mapped to specific causes)
  • Random Picker returning no results (GitHub fallback)
  • Idea remixing from Random Picker (create new, reference original)

Files Changed

  • SKILL.md — Main skill definition (350 → 430+ lines)
  • README.md — Updated with v2 feature documentation

Testing

  • GraphQL queries validated against https://mainnet.intuition.sh/v1/graphql
  • Trigger phrases tested for both Mode A and Mode B entry points
  • Error paths documented with specific recovery instructions

Closes #1

…ish flow

Bounty 3C: Skill Enhancement

- Add 'Random Idea Picker' mode (Mode B) — pulls random ideas from the
  Intuition mainnet knowledge graph via GraphQL, with GitHub fallback
- Dual-state checking in Step 1 — searches both onchain atoms AND GitHub
  issues/ideas repo before brainstorming to prevent duplicates
- Improved Step 5 publish flow:
  - Pre-flight cost checks (atom cost, triple cost, curve ID, balance)
  - Duplicate atom detection — reuses existing atoms instead of failing
  - Batch triple creation for efficiency
  - Deposit preview before execution
  - Clear cost summary shown to user BEFORE any transaction
- New trigger phrases: 'random idea', 'inspire me', 'what should I build'
- Ideas list integration: new ideas auto-linked via 'top project ideas for'
  triple, making them discoverable by the Random Picker and Ideation Dapp
- Enhanced error handling: IPFS pin failures, insufficient balance, atom
  exists, transaction reverts — all with clear user-facing recovery paths
- Updated README with v2 feature documentation
@y4motion

Copy link
Copy Markdown
Author

Hi @jeremie-olivier and @danielamodu 👋

This PR adds three enhancements to the ideation skill:

  1. Onchain Random Idea Picker — queries the Intuition GraphQL API to pick a random atom from existing onchain ideas, so creators get fresh inspiration without repeating already-posted concepts
  2. Dual-state checking — validates both GitHub issues and onchain atoms before suggesting ideas, preventing duplicates across both layers
  3. Streamlined Step 5 publish flow — adds pre-flight checks, batch triple creation previews, and deposit amount estimates before committing onchain

Would love your feedback when you get a chance!

@danielamodu

Copy link
Copy Markdown

Hey! Thanks for the tag — this looks great. The onchain random idea picker is exactly the kind of friction-reducer the ideation flow needed. A few thoughts:

  1. The dual-state checking (GitHub + onchain) is smart — prevents the awkward situation where someone proposes an idea that's already been atomized onchain but not tracked on GitHub.

  2. For the batch triple creation preview in Step 5 — does it show estimated gas/deposit costs before committing? That would help contributors gauge onchain costs upfront.

  3. One thing worth considering: could the random idea picker weight by "staleness" — surfacing atoms that haven't had activity in X days first? Helps resurface good ideas that got buried.

Happy to test this and give more detailed feedback once I've had a chance to run through it.

… scoring

Implements three discovery strategies for the Random Idea Picker:
- Popular: top ideas by total TRUST staked
- Hidden Gems: staleness-weighted rediscovery (backed but dormant >14d)
- Rising: momentum scoring (stakers-per-day growth rate)

Each mode has tailored presentation and users can switch mid-session.
Addresses feedback from @danielamodu on PR intuition-box#2.
@y4motion

y4motion commented May 1, 2026

Copy link
Copy Markdown
Author

Thanks @danielamodu — really glad this resonates! Great questions, and I went ahead and shipped all three:

1. Gas/deposit costs in preview — already implemented ✅

Step 5a (Pre-flight checks) queries getAtomCost() and getTripleCost() from the MultiVault contract and presents a full breakdown before any transaction:

  • Atom creation cost
  • Triple creation costs (up to 4)
  • User's stake amount
  • Estimated total in $TRUST

No surprises — the user confirms before any tx fires.

2. Staleness weighting — just shipped in 1e574fe 🚀

Loved this idea so much I built it. The Random Idea Picker now has three discovery modes:

Mode Strategy How it works
🔥 Popular Top backed Sort by totalShares desc, pick from top 10
💎 Hidden Gems Staleness-weighted Filter: positionCount > 0 AND updatedAt > 14 days ago — ideas with believers but buried
📈 Rising Momentum scoring stakers / days_since_last_activity — identifies ideas gaining traction fastest

Users choose their mode or say "surprise me" for pure random. They can switch modes mid-session too.

Each mode has a tailored presentation — Hidden Gems says "This idea had believers but got buried. Could you be the one to revive it?" while Rising shows the momentum score.

3. Testing

Quickest way:

npx skills add intuition-box/intuition-ideation-skill

Then try: "inspire me", "show me hidden gems", or "what's trending" to trigger Mode B with different discovery strategies. GraphQL queries hit mainnet live.

Would love your feedback on the discovery modes — especially whether the 14-day dormancy threshold for Hidden Gems feels right, or if you'd prefer it configurable.

@danielamodu

Copy link
Copy Markdown

This is excellent — the three discovery modes are exactly the right abstraction. A few thoughts after testing:

Hidden Gems threshold: 14 days feels right as a default but configurable would be better long-term. Some ideas are seasonal (e.g. infrastructure ideas that only matter during certain protocol phases). A slider or parameter like dormancy_days would let power users tune it.

Rising mode: the stakers / days_since_last_activity formula is clean. One edge case — new ideas (< 3 days old) will always score high on momentum even with 1 staker. Worth adding a minimum age filter like created_at > 3 days ago to avoid surfacing brand new ideas as "rising."

Surprise me: love it. This is the one I'd use most — reduces selection paralysis.

Gas preview: the pre-flight breakdown is exactly what was missing. No notes here, this is perfect.

Overall this feels production-ready. The mode switching mid-session is a nice touch — keeps exploration fluid without forcing a restart.

…ning

Addresses feedback from @danielamodu:
- dormancy_days param (default 14, user-tunable) for Hidden Gems
- min_rising_age_days param (default 3) prevents <3-day ideas scoring as rising
- SELECTION_REASON output explains WHY each idea was picked
- Interactive dormancy prompt when entering Hidden Gems mode
- Enhanced presentation with threshold transparency
@y4motion

y4motion commented May 1, 2026

Copy link
Copy Markdown
Author

Shipped both in 94390f1 — plus a few extras:

1. Configurable dormancy_days

Hidden Gems threshold is now a tunable parameter (default: 14). The skill proactively asks:

"The default dormancy threshold is 14 days. Want to adjust? Some seasonal infrastructure ideas may need 30+ days. Just say a number or 'default'."

This handles exactly your point about seasonal/infrastructure ideas.

2. Rising mode minimum age filter ✅

New min_rising_age_days parameter (default: 3). Ideas younger than 3 days are excluded from momentum ranking — prevents the 1-staker false positive you flagged.

Includes a graceful fallback: if ALL ideas are < 3 days old, the filter is bypassed so results are never empty.

3. Selection reasoning (bonus) 🧠

Every picked idea now outputs SELECTION_REASON — a human-readable explanation of WHY it was chosen:

  • Popular: "Top-backed idea with 15 stakers and 2400 $TRUST staked"
  • Hidden Gems: "Had 8 believers but dormant for 23 days — ripe for revival"
  • Rising: "Gaining 2.45 stakers/day — fastest growing in the pool"

4. Threshold transparency (bonus) 📊

Presentations now show the active thresholds (DORMANCY_THRESHOLD, MIN_RISING_AGE) so users know exactly what parameters drove the selection.

Parameter Default User-tunable
dormancy_days 14
min_rising_age_days 3

README updated with v2.2 changelog. Ready for another round of feedback if anything else stands out.

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.

Mission 03: Intuition Ideation Project

2 participants