agentsclimarketplace

Flutter soul stewardship

Skill jahfaliabdulrahman-dev/hermes-skills/skills/flutter-soul-stewardship

Production-grade agent skills for Flutter, DevOps & AI Governance — forged in real projects, governed by constitution, verified on device.

Install
npx -y skills add jahfaliabdulrahman-dev/hermes-skills --skill flutter-soul-stewardship

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 19 days oldThe repository was created 19 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Exact procedure for the Lead Architect to update SOUL.md files across all Flutter profiles. Use when the Lead Architect needs to add, modify, or remove sections in any Flutter profile's SOUL.md or config.yaml system_prompt. Eliminates trial-and-error — every step is deterministic.

SKILL.md

10.4 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it

Flutter Soul Stewardship

How the Lead Architect updates SOUL.md files for all 10 Flutter profiles. Zero guesswork. Zero silent failures. Every step verified.

11.4 Target Profiles

~/.hermes/profiles/flutter-lead-architect/SOUL.md
~/.hermes/profiles/flutter-product-steward/SOUL.md
~/.hermes/profiles/flutter-ui-ux-designer/SOUL.md
~/.hermes/profiles/flutter-backend-db-architect/SOUL.md
~/.hermes/profiles/flutter-state-engineer/SOUL.md
~/.hermes/profiles/flutter-qa-tester/SOUL.md
~/.hermes/profiles/flutter-zero-trust-auditor/SOUL.md
~/.hermes/profiles/flutter-devops-release-engineer/SOUL.md
~/.hermes/profiles/flutter-documentation-steward/SOUL.md
~/.hermes/profiles/flutter-curiosity-hunter/SOUL.md

Governance files (symlinked, NOT profile-local):

~/.hermes/swarm/constitution.yaml          ← Single source of truth
~/.hermes/swarm/00_governance_lessons.md   ← Governance lessons (GL-NNN)
~/.hermes/profiles/flutter-*/constitution.yaml        → symlink to swarm/
~/.hermes/profiles/flutter-*/00_governance_lessons.md → symlink to swarm/

Each profile also has its SOUL embedded in:

~/.hermes/profiles/<name>/config.yaml → agent.system_prompt

The Three-Target Rule (Governance Constitution)

Since the Swarm Governance Constitution was deployed, THREE files per profile may need updates:

FileContainsWhen to update
SOUL.mdThe canonical soul documentALWAYS — source of truth
constitution.yamlSYMLINK to ~/.hermes/swarm/constitution.yamlEdit the SOURCE file at ~/.hermes/swarm/constitution.yaml — NEVER edit individual profile copies. Symlinks auto-propagate changes.
00_governance_lessons.mdSYMLINK to ~/.hermes/swarm/00_governance_lessons.mdAppend governance lessons (GL-NNN) to the source file. All profiles inherit automatically.
config.yaml (agent.system_prompt)SOUL injected as system promptOnly if SOUL content was previously embedded there
FileContainsWhen to update
SOUL.mdThe canonical soul documentALWAYS — this is the source of truth
config.yaml (agent.system_prompt)SOUL injected as system promptOnly if the SOUL content was previously embedded there

Check first: Read config.yamlagent.system_prompt. If it contains the SOUL text, update BOTH files. If not (some profiles load SOUL.md at runtime), update only SOUL.md.

System prompt may be truncated. If the agent.system_prompt is missing recent SOUL sections, it needs a full rebuild — see references/system-prompt-rebuild.md for the Python procedure.

Procedure (Must Follow — No Shortcuts)

Step 1: Inventory — Read All Target SOULs

# List all flutter profiles
hermes profile list | grep flutter

Read EVERY target profile's SOUL.md before making any edits. Understand what exists. Never edit blind.

Step 2: Identify the Delta

Define precisely:

  • Which profile(s) need changes
  • What section/text is being added, modified, or removed
  • Whether the change is identical across profiles or profile-specific

Step 3: Read the Target File First

Always use read_file to confirm the current state. Never assume file contents from memory.

Step 4: Make the Edit

Use the patch tool (NOT terminal sed/awk) for targeted edits:

patch(
  path="~/.hermes/profiles/flutter-state-engineer/SOUL.md",
  old_string="<exact text to replace including surrounding context>",
  new_string="<replacement text>"
)

Rules:

  • Include 2-3 lines of surrounding context in old_string to ensure uniqueness
  • Never use write_file for partial edits — it overwrites the entire file
  • For adding a new section at the end, match the LAST unique paragraph as anchor

Step 5: VERIFY — Read Back (MANDATORY)

This step is non-negotiable. File writes can silently fail. After EVERY patch:

read_file(path=".../SOUL.md")

Confirm the change is present. Compare before/after. If the change is NOT visible, the patch silently failed — retry or use a different approach.

Step 6: Update config.yaml if Needed

If agent.system_prompt embeds SOUL content:

  1. Read the current agent.system_prompt value
  2. Apply the same delta to it
  3. Use hermes config set agent.system_prompt "<new value>" --profile <name> OR use patch on the config.yaml file directly
  4. Verify with hermes config get agent.system_prompt --profile <name>

Step 7: Report

After all profiles are updated, produce a Soul Stewardship Report:

## Soul Stewardship Report

**Date:** <timestamp>
**Initiator:** Lead Architect
**Change:** <summary of what was changed and why>

### Profiles Updated

| Profile | SOUL.md | config.yaml | Verified |
|---------|---------|-------------|----------|
| flutter-state-engineer | ✅ L45-52 | N/A | ✅ |
| flutter-qa-tester | ✅ L30-38 | ✅ | ✅ |
| ... | | | |

### Validation
- All files read back and confirmed
- No silent write failures detected

The Anti-Regression Gate

Before marking the task DONE:

  • Every target SOUL.md was read AFTER editing — change confirmed
  • No existing SOUL content was accidentally deleted or mangled
  • Section numbering remained consistent (if sections are numbered)
  • No profile was skipped unintentionally
  • config.yaml system_prompt synced where applicable
  • Report saved to Obsidian: Flutter Operation/ flutter-lead-architect/ SOUL_STEWARDSHIP_LOG.md

Fallback: When patch or write_file Refuses Cross-Profile Access

The Hermes patch and write_file tools have a cross-profile soft guard that blocks writes to other profiles' skills/, plugins/, cron/, and memories/ directories. SOUL.md and config.yaml are NOT in these directories — writes should succeed without the guard.

If a write to another profile's SOUL.md is blocked anyway, add cross_profile=true:

patch(
  path="~/.hermes/profiles/flutter-state-engineer/SOUL.md",
  old_string="...",
  new_string="...",
  cross_profile=true
)

If that also fails, use Python via terminal (bypasses all tool guards):

python3 << 'PYEOF'
path = "/Users/abdurrahmanjahfali/.hermes/profiles/flutter-state-engineer/SOUL.md"
with open(path, 'r') as f:
    content = f.read()
old = "exact text to replace"
new = "replacement text"
if old in content:
    content = content.replace(old, new)
    with open(path, 'w') as f:
        f.write(content)
    # Verify
    with open(path, 'r') as f:
        written = f.read()
    if new in written:
        print("VERIFIED: change present")
    else:
        print("FAILED: change not found after write")
else:
    print("FAILED: old_string not found in file")
PYEOF

Pitfalls

Silent Write Failures

The patch and write_file tools CAN report success while the file remains unchanged. This is a known issue with Hermes tool output. Always read back after every write. If the change isn't there, try:

  1. write_file with the full content (read first, modify in memory, write back)
  2. If that also fails, use Python via terminal:
    python3 -c "
    path = '$FILE'
    with open(path, 'r') as f: content = f.read()
    content = content.replace('OLD', 'NEW')
    with open(path, 'w') as f: f.write(content)
    print('written:', len(content), 'chars')
    "
    

YAML system_prompt Escaping

When updating config.yamlagent.system_prompt, the SOUL content is stored as a YAML double-quoted string with \n escape sequences. Do NOT hand-edit the escaped string — a single missing \n or unescaped quote corrupts the prompt. Use Python:

import yaml
with open(config_path) as f:
    config = yaml.safe_load(f)
# Modify the prompt string (plain newlines — yaml.dump will escape)
config["agent"]["system_prompt"] = new_prompt_with_plain_newlines
with open(config_path, 'w') as f:
    yaml.dump(config, f, default_flow_style=False, allow_unicode=True, sort_keys=False)

Section Numbering Drift

If a SOUL has numbered sections (e.g., ## 11. Soul Stewardship), adding a new section in the middle shifts all subsequent numbers. Either:

  • Append new sections at the END (preferred — no renumbering needed)
  • OR renumber ALL sections after the insertion point

Cross-Profile Consistency

Changes that apply to ALL profiles should be identical. Copy-paste the same text. Do not rephrase between profiles — this creates divergence over time.

Profile-Specific Sections

Some SOUL sections are profile-specific (e.g., State Engineer's §14 Transaction Boundary Pre-Check). When making cross-profile changes, SKIP sections that don't apply to certain profiles. Do not blindly add State Engineer rules to the QA Tester.

Quick Reference: What Each Profile Owns

ProfileSOUL.md linesSignature sections
flutter-lead-architect~180Orchestration, Conflict Resolution, Stub Detection Gate, Known-Bug Enforcement, Soul Stewardship
flutter-product-steward~79PRD ownership, Gherkin, scope boundaries
flutter-ui-ux-designer~110Screen states, design tokens, RTL/LTR
flutter-backend-db-architect~202Isar schema, ACID, writeTxn rules
flutter-state-engineer~283Transaction Boundary Pre-Check, Stub Prohibition, Test Preservation
flutter-qa-tester~216TestSprite E2E, credit management, test layers
flutter-zero-trust-auditor~15610 mandatory attack vectors, hostile audit rules
flutter-devops-release-engineer~82CI/CD, release gates, secrets management
flutter-documentation-steward~62Spec pack maintenance, DEC-045 stage sync gate, lessons learned, cross-reference integrity
flutter-curiosity-hunter~143SCSI Layer 1 — bug hunter, pattern scanner, gatekeeper, per-board guardian, Gatekeeper Protocol, Truth Check, Test Impact Check

Obsidian Log Location

All soul stewardship reports go to:

<VAULT>/Flutter Operation/flutter-lead-architect/SOUL_STEWARDSHIP_LOG.md

Append each report to this file (don't overwrite). This creates an audit trail of all soul changes.

Gives 0 of the 12 instructions most prompt engineering skills give in ~2.5k tokens

Counted across 563 of the 626 authors here whose files we hold, read 2026-08-06

  • ask at most three clarifying questionsin 22 of 563, across 15 files
  • respond in the user input languagein 14 of 563, across 9 files
  • preserve the original intentin 13 of 563, across 11 files
  • Establish baseline metrics and collect representative examplesin 12 of 563, across 2 files
  • Identify failure modes and prioritize high-impact fixesin 12 of 563, across 2 files
  • Apply prompt and workflow improvements with measurable goalsin 12 of 563, across 2 files
  • Roll back quickly if quality or safety metrics regressin 12 of 563, across 2 files
  • validate changes with tests and roll out in controlled stagesin 12 of 563, across 2 files
  • generate quantitative baseline performance reportsin 12 of 563, across 2 files
  • create representative test scenariosin 12 of 563, across 2 files
  • treat prompts as codein 12 of 563, across 5 files
  • test prompts on diverse inputsin 12 of 563, across 8 files

Said here and by no other author read

  • read target file before editing
  • use patch tool for targeted edits
  • include surrounding context in old_string
  • read back file after every patch
  • update config.yaml if system_prompt embeds SOUL
  • use python to modify yaml files

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.