
Edico
- 3 installs
- 5 repo stars
- Updated February 7, 2026
- xenitv1/edico
Helps with ai & agent building tasks.
About
edico is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- edico
- AI & Agent Building
- AI-coding skill
Edico by the numbers
- 3 all-time installs (skills.sh)
- Ranked #13,657 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Jul 27, 2026 (Skillselion catalog sync)
npx skills add https://github.com/xenitv1/edico --skill edicoAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 3 |
|---|---|
| repo stars | ★ 5 |
| Last updated | February 7, 2026 |
| Repository | xenitv1/edico ↗ |
What it does
Helps with ai & agent building tasks.
Files
<domain_overview>
📚 EDICO: PERSISTENCE & REDUNDANCY REDUCTION
MISSION: To stop redundant web searches by the AI and transform learned insights into a permanent, collective local memory.
Philosophy: Knowledge should be cumulative, not ephemeral. Edico is the bridge between conversations, ensuring that once a topic is researched, it remains accessible forever.
</domain_overview>
<iron_laws>
🚨 IRON LAWS
1. CHECK BEFORE SEARCH - Always scan the local .webdata directory BEFORE starting any deep web research.
2. NO REDUNDANCY - If existing data is fresh (less than 2 months old), use it as the primary source instead of performing a new search.
3. SOURCE-BASED TIMESTAMPS - Do NOT use the current date for the record. Use the date mentioned in the sources (e.g., article publication date) to ensure historical accuracy.
4. EXHAUSTIVE ANALYSIS - Never write a "summary." Write a COMPREHENSIVE analysis. It must be so detailed that any subsequent AI reading it will NOT need to perform a new search. Include all data points, technical nuances, and context.
5. ENGLISH ONLY PERSISTENCE - All data saved to the local database (topic, detailed_analysis, tags) MUST be written in English, regardless of the user's language or the source's language. This ensures 100% interoperability across systems.
6. AUTONOMOUS PERSISTENCE - When /edico is triggered or research is complete, synthesize and save immediately without asking for user confirmation.
7. QUALITY OVER QUANTITY - Do not save raw data dumps; only persist high-value, deep-dive insights.</iron_laws>
<protocols>
📦 PROTOCOL 1: "CHECK-FIRST" TRIGGER
Every time a user asks for research or a new topic is introduced: 1. Search Local DB: Use keywords to check ~/.webdata/research_log.jsonl. 2. Evaluate Freshness: If found and < 2 months old, use it as the primary source. 3. Optimize Search: Only search the web for missing details or required updates.
📦 PROTOCOL 2: DATA SYNTHESIS & STORAGE (AUTONOMOUS)
When research is completed or /edico is called: 1. Extract Dates: Identify the publication or validity date from the sources. 2. Analyze Exhaustively in English: Write a deep-dive analysis that contains all critical findings. This must be in English. 3. Execute: Run node skills/edico/scripts/persist.js with structured parameters, including --detailed_analysis and --timestamp. 4. Silent Success: The operation must be silent and autonomous unless an error occurs.
⚙️ STORAGE COMMAND TEMPLATE
node skills/edico/scripts/persist.js --topic "[TOPIC_IN_ENGLISH]" --detailed_analysis "[EXHAUSTIVE_CONTENT_IN_ENGLISH]" --sources "[URL1],[URL2]" --tags "[TAG1],[TAG2]" --timestamp "[SOURCE_DATE]" </protocols>
<usage_guidelines>
🛠️ USAGE
- Use this skill to combat "conversation amnesia."
- Edico is the default memory layer for all web-related research tasks.
</usage_guidelines>
const fs = require('fs');
const path = require('path');
const os = require('os');
/**
* Persists synthesized research data to a JSONL file in the user's home directory.
*/
function persistData() {
const args = process.argv.slice(2);
const params = {};
for (let i = 0; i < args.length; i += 2) {
if (!args[i]) break;
const key = args[i].replace('--', '');
const value = args[i + 1];
params[key] = value;
}
// detailed_analysis is the mandatory field for exhaustive research
const { topic, detailed_analysis, sources, tags, timestamp } = params;
if (!topic || !detailed_analysis) {
console.error('Error: --topic and --detailed_analysis are required.');
process.exit(1);
}
const homeDir = os.homedir();
const webdataDir = path.join(homeDir, '.webdata');
const logFile = path.join(webdataDir, 'research_log.jsonl');
// Ensure directory exists
if (!fs.existsSync(webdataDir)) {
fs.mkdirSync(webdataDir, { recursive: true });
console.log(`Created directory: ${webdataDir}`);
}
const data = {
timestamp: timestamp || new Date().toISOString(),
topic,
detailed_analysis: detailed_analysis,
sources: sources ? sources.split(',').map(s => s.trim()) : [],
tags: tags ? tags.split(',').map(t => t.trim()) : []
};
try {
fs.appendFileSync(logFile, JSON.stringify(data) + '\n', 'utf8');
console.log(`Successfully persisted data to ${logFile}`);
} catch (err) {
console.error(`Error persisting data: ${err.message}`);
process.exit(1);
}
}
persistData();