dedup-proposals
Scannednpx machina-cli add skill rana/yogananda-skills/dedup-proposals --openclawExploration Deduplication and Proposal Curation
Context
Raw explorations in .elmer/proposals/ are unvetted AI ideation — not project documents. This skill consolidates them into curated PRO-NNN entries in PROPOSALS.md, the project's proposal registry. See ADR-098 for the three-tier maturity model (explorations → proposals → decisions).
Mode Selection
No arguments (/dedup-proposals): Triage mode — scan all explorations, report clusters, recommend PRO-NNN entries.
With argument (/dedup-proposals <PRO-NNN> or /dedup-proposals <filename>): Synthesis mode — find all related explorations of the named topic, merge them into one PRO-NNN entry.
Triage Mode (no arguments)
Read PROPOSALS.md to determine the current max PRO number and existing entries.
Read all .md files in .elmer/proposals/. For each file, extract:
- The
elmer:archivemetadata block (topic, id, archetype, status) - The first 200 words of the Summary section
Cluster explorations by topic similarity:
- Exact match: Same
topicfield in elmer metadata - Near match: Topics sharing 3+ significant words (excluding stopwords)
- Content match: Summaries with >40% semantic overlap
For each cluster, report:
- File names and sizes
- Overlap percentage (structural alignment of sections)
- Which file is more developed (word count, section completeness)
- Unique ideas in each file not present in the other(s)
- Contradictions between files (if any)
- Recommended PRO-NNN entry: title, type (Feature/Theme/Policy/Enhancement), and which exploration to use as canonical base
- Cross-references to existing ADR/DES identifiers mentioned in the explorations
For non-clustered explorations, report as standalone candidates for individual PRO-NNN entries.
Classify each cluster/standalone by proposal type:
- Feature — New capability (word graph, read-to-me mode, focused reader)
- Theme — Content theme for taxonomy integration (self-worth, vibration/AUM, extra-solar life)
- Policy — Governance, legal, or process change (copyright, AI automation)
- Enhancement — Improvement to existing feature (visual design, reader mode)
- Retrospective — Design review findings (cognitive load, resonance analysis) — these may not need PRO-NNN entries; they inform design revisions
Present the full report. Offer three actions:
- Auto-resolve all clusters and create PRO-NNN entries in PROPOSALS.md
- Resolve cluster-by-cluster with approval
- Show side-by-side comparison for a specific cluster
Synthesis Mode (with argument)
Step 1: Find related explorations
If argument is a PRO-NNN, read its entry in PROPOSALS.md and identify the topic and origin files.
If argument is a filename, read the named file from .elmer/proposals/. Extract its topic field from the elmer:archive metadata block.
Scan all other .md files in .elmer/proposals/:
- Check for exact topic match (same elmer topic string)
- Check for near topic match (3+ shared significant words in topic)
- Check for content overlap (>40% of referenced ADRs/DES sections are the same)
Report what was found:
Found N related exploration(s):
→ filename.md (topic match: exact|near|content, overlap: NN%)
If no related explorations found, report and proceed to create a standalone PRO-NNN entry.
Step 2: Structural alignment
For each section present in any source file (Summary, Analysis, Proposed Changes, Open Questions, What's Not Being Asked), compare across all sources:
- Shared ideas: Present in 2+ sources (strengthened signal)
- Unique to source A: Ideas only in one exploration
- Unique to source B: Ideas only in the other
- Contradictions: Claims or recommendations that conflict
Present the alignment table to the user.
Step 3: Synthesize and create PRO entry
On approval, produce:
-
A PRO-NNN entry in PROPOSALS.md with:
- Next available PRO number (after current max in PROPOSALS.md index)
- Status: Proposed
- Type: Feature/Theme/Policy/Enhancement (as classified)
- Governing Refs: ADR/DES identifiers mentioned in the explorations
- A curated summary (scheduling-focused, not raw exploration prose)
- Origin: list of source exploration filenames
-
Update the PROPOSALS.md index table with the new entry.
-
Update ROADMAP.md § Unscheduled Features — add a row to the "Proposed — Awaiting Evaluation" table with the PRO-NNN reference.
-
Archive source explorations — move superseded files to
.elmer/proposals/archived/(create directory if needed). Add a synthesis note to the archived files:
<!-- Consolidated into PRO-NNN in PROPOSALS.md on [date] -->
Step 4: Report
Report the synthesis: PRO-NNN assigned, word counts, unique ideas preserved, contradictions flagged, files archived.
Quality Standards
- Lossless on ideas, lossy on phrasing. Every distinct insight from every source must appear in the PRO entry or be noted as a cross-reference. Redundant prose is collapsed.
- Parallax is signal. When two explorations reach the same conclusion independently, that's stronger evidence than either alone. Mark it.
- Don't resolve tensions. If Source A says "defer Neptune" and Source B says "keep Neptune but simplify," present both. Synthesis combines perspectives — it doesn't make decisions.
- Preserve the "What's Not Being Asked" sections fully. These contain the highest-value insights and are the most likely to differ between explorations.
- PRO entries are scheduling-focused. The PRO body in PROPOSALS.md captures: what is proposed, what type it is, what it depends on, what ADR/DES it relates to, and when to re-evaluate. It does not duplicate the full exploration analysis.
Output Management
Present the structural alignment before writing anything. The user approves, edits, or rejects the synthesis plan before PRO entries are created.
If multiple clusters need deduplication, segment into groups. Present each cluster's synthesis plan for approval. After each approved synthesis is executed, proceed immediately to present the next cluster. Continue until all clusters are processed. State the total count when complete.
Source
git clone https://github.com/rana/yogananda-skills/blob/main/skills/dedup-proposals/SKILL.mdView on GitHub Overview
Consolidates raw explorations from .elmer/proposals/ into curated PRO-NNN entries in PROPOSALS.md, following ADR-098's three-tier maturity model (explorations → proposals → decisions). In no-argument mode it triages all explorations and reports clusters; with a PRO-NNN or filename it synthesizes related explorations into a single proposal.
How This Skill Works
The tool reads PROPOSALS.md to determine the current max PRO number, scans all .md files in .elmer/proposals/ to extract the elmer:archive metadata (topic, id, archetype, status) and the first 200 words of each Summary, and clusters explorations by exact topic matches, near matches (3+ shared significant words excluding stopwords), or content overlap (>40% of referenced ADR/DES sections). In synthesis mode, given a PRO-NNN or filename, it identifies related explorations and merges them into one PRO-NNN entry.
When to Use It
- You need to triage raw explorations and surface clustering before planning PRO entries.
- You want to assess which explorations are ripe for consolidation into a PRO-NNN.
- You have a named topic (PRO-NNN or filename) and need related explorations merged into a canonical base.
- You are preparing PROPOSALS.md with proper cross-references to ADR/DES identifiers.
- You need a side-by-side understanding of exploration relationships for governance planning.
Quick Start
- Step 1: Run dedup-proposals with no arguments to triage all explorations and report clusters.
- Step 2: Run dedup-proposals <PRO-NNN> or dedup-proposals <filename> to synthesize related explorations into one entry.
- Step 3: Open PROPOSALS.md to review the recommended PRO-NNN, canonical base, and cross-references.
Best Practices
- Read PROPOSALS.md first to determine the current max PRO number before proposing a new entry.
- Precisely extract the elmer:archive block (topic, id, archetype, status) from each proposal file.
- Capture the first 200 words of the Summary for clustering decisions.
- Use exact, near, and content overlap criteria to group explorations and surface contradictions.
- Document unique ideas per file and select a clear canonical base for synthesis, citing ADR/DES references.
Example Use Cases
- Cluster A topics identify PRO-007 as the canonical base and merge related explorations into its PROPOSALS.md entry.
- Two explorations on a similar topic remain standalone candidates after triage.
- PRO-012 is created by synthesizing three related explorations with a unified title and scope.
- A cluster reveals contradictions between files, prompting cross-reference to ADR-098 and a revision.
- An unrelated exploration is added as a new standalone PRO-NNN with proper topic metadata.