skills/generate-principles/SKILL.md
Generate evidence-backed personal principles from markdown notes, reflections, and transcripts. Use when extracting life principles, decision rules, or lessons from journal entries and reflections.
npx skillsauth add psycho-baller/ai-agents-config generate-principlesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to turn markdown notes into personal principles Rami can actually live by.
The output is not motivational advice. A useful principle is a reusable decision rule backed by evidence from Rami's own notes.
This skill creates a principles report. It does not update note frontmatter and it does not maintain the recurring pattern files. Use generate-metadata for per-note metadata and update-patterns for living pattern files.
The agent owns judgment. The script owns structure.
For each target file or batch, produce a markdown report that answers:
The report should help Rami decide how to behave differently. If the output only describes what the notes said, the skill failed.
Default to writing the report into scratch space, for example:
../scratch/generate-principles/
Only write permanent vault notes if the user explicitly asks.
Use this working definition:
When [situation or trigger], I will [specific behavior], because [evidence-backed reason].
Good principles are:
Do not extract every takeaway as a principle. A takeaway becomes a principle only when it can guide future behavior in repeated situations.
Weak principles sound like slogans:
Be more confident.Work harder.Communicate better.Stay focused.Rewrite them into decision rules:
When an important conversation is coming, prepare the opening minute before the call so you do not enter the room vague or powerless.When attraction spikes before real-world knowledge exists, separate facts from fantasy before emotionally investing.Before starting work, decide what is explicitly not happening today so your mental RAM is not consumed by every possible task.Read references/framework.md only when you need the theory behind the framework or source links.
Accept one markdown file or any number of markdown files.
When notes have generate-metadata frontmatter, use these fields as high-signal inputs:
summarycore_themespractical_takeawayscommunication_flawsrelationship_patternsidentity_beliefsrecurring_fearsdecision_principlesopen_problemsexperiments_to_runpeople_mentionedprojects_mentionedStill read the body. Frontmatter is a map; the note body contains the real evidence, wording, and emotional texture.
If metadata and body disagree, trust the body and mention the tension in the reasoning.
Use one status per principle:
observed: Rami already appears to live by this principle.candidate: the evidence suggests this principle, but it needs testing.adopted: the principle is strong, useful, and ready to become a living rule.contradicted: the notes contain meaningful evidence against this principle.retired: the principle is outdated or no longer useful.Prefer candidate when uncertain. Use adopted only when the principle is specific, supported, and actionable.
Use the closest domain:
communicationrelationshipsidentityproductivitycareerproduct_entrepreneurshiplife_philosophyhealth_spiritualitypersonal_growthThe schema is expandable. Add new domains to schema.json before using them.
Score every principle from 1 to 5 on each dimension. The script totals the score out of 25.
clarity: Does the principle name a clear trigger and behavior?evidence: Is it supported by specific source notes or direct phrases?actionability: Can Rami practice it today or this week?identity_alignment: Does it connect to the kind of person Rami is becoming?habit_design: Does it include cue, response, reward, implementation intention, and friction design?Interpretation:
21-25: adopted-ready16-20: strong candidate10-15: needs more evidence or sharper behavior<10: rewrite or discardDo not inflate scores. A principle with weak evidence should not score above 3 on evidence.
Each principle needs a behavior system:
identity: Who Rami is becoming when he lives by this principle.cue: The situation that should trigger the behavior.craving: The meaningful reason the behavior should feel worth doing.response: The smallest concrete behavior.reward: The immediate satisfying feedback after the behavior.implementation_intention: When [time/place/situation], I will [behavior].habit_stack: After [existing habit/event], I will [new behavior].environment_design: How to make the behavior obvious, easy, and visible.friction_to_reduce: What to remove so the good behavior is easier.friction_to_add: What to make harder so the old failure mode is less automatic.Map the system to the practical habit laws:
If a field feels generic, make it smaller and more concrete.
Before writing the payload, check every principle:
When [trigger], I will [behavior], because [reason]?If a principle fails these checks, rewrite it, lower its score, or leave it out.
Use wiki-links to source notes when possible.
Good evidence:
[[Sense of control determines communication performance]]: Rami notices his speaking improves when he feels in control before the interaction.[[Crush on Lebanese Girl and Unhealthy Expectations]]: attraction becomes fantasy before enough facts exist.Weak evidence:
Rami should communicate better.This seems important.Prefer direct phrases from the note when they identify the exact moment or problem. Keep quotes short.
/tmp/generate-principles-<short-name>.json.For one report:
uv run python /Users/rami/Documents/life-os/ai-agents-config/skills/generate-principles/scripts/generate_principles.py render --payload-file /tmp/generate-principles.json --output ../scratch/generate-principles/principles-report.md
uv run python /Users/rami/Documents/life-os/ai-agents-config/skills/generate-principles/scripts/generate_principles.py validate-report ../scratch/generate-principles/principles-report.md
To inspect the current schema:
uv run python /Users/rami/Documents/life-os/ai-agents-config/skills/generate-principles/scripts/generate_principles.py schema
Use this JSON shape:
{
"report_title": "Principles from April transcriptions",
"sources": [
"Transcriptions/Sense of control determines communication performance.md"
],
"principles": [
{
"title": "Prepare control before high-stakes conversations",
"status": "candidate",
"domain": "communication",
"confidence": "medium",
"source_notes": [
"[[Sense of control determines communication performance]]"
],
"principle": "When an important conversation is coming, I will prepare the opening minute before the call because my communication gets worse when I enter unclear and powerless.",
"reasoning": "The note repeatedly connects communication performance to feeling in control before speaking.",
"evidence": [
"[[Sense of control determines communication performance]]: Rami links smoother communication to feeling prepared and in control."
],
"identity": "I am the kind of person who creates calm before important conversations instead of hoping clarity appears live.",
"cue": "A meeting, interview, hard conversation, or pitch is on the calendar.",
"craving": "Feel grounded before entering the interaction.",
"response": "Write the first minute, the desired outcome, and one question.",
"reward": "Check off the preparation and enter the call with less mental noise.",
"implementation_intention": "When a high-stakes conversation appears on the calendar, I will write the opening minute before the call starts.",
"habit_stack": "After checking tomorrow's calendar, I will mark any conversation that needs a prepared opening minute.",
"environment_design": "Keep a conversation-prep template visible in the daily note.",
"friction_to_reduce": "Remove the need to invent the prep format each time.",
"friction_to_add": "Do not join the call until the opening minute has been written.",
"failure_mode": "Overpreparing into a script instead of creating calm direction.",
"experiment": "For the next five important conversations, prepare the opening minute and rate communication control afterward.",
"review_cadence": "Review after five conversations.",
"score": {
"clarity": 5,
"evidence": 4,
"actionability": 5,
"identity_alignment": 4,
"habit_design": 5
}
}
]
}
Every principle must include:
If the note does not support any real principle, say so and do not invent one.
tools
Pre-task clarity ritual for Rami. Surfaces real intention, maps work to his pillars, and produces a Session Brief. Use when Rami is about to start a task or plan a work session.
testing
Find and retrieve notes from Rami's Obsidian vault by topic or theme using semantic search against Smart Connections embeddings. Use when asked to find notes about a specific subject, retrieve relevant vault content, or surface what Rami has written about a topic.
testing
Update living Obsidian pattern files from metadata-enriched transcriptions. Use when asked to populate or update pattern files for communication flaws, beliefs, fears, principles, or people/projects mentioned.
testing
Generate and validate frontmatter metadata for markdown transcriptions and voice notes. Use when processing raw transcriptions, enriching Letterly notes, or preparing notes before moving them to final outputs.