agentleFS
fabioc-alohafabioc-aloha/Alex_ACT_Edition/.github/skills/ai-memory-setup/SKILL.md

ai-memory-setup

Skill0 starsChanged 4 months agoMITView on GitHub

Detect, resolve, and manage the Alex_ACT_Memory shared memory bus. Fires on bootstrap, session start (announcements), and feedback writes.

  • Reads credentials

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 6 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Sibling exists: use it and pull updates (best-effort)

    line 18
  2. Very specific:

    Check announcements/ for unread files

    line 50
  3. Distinctive:

    Do NOT read or report feedback (that's the Supervisor's job)

    line 52
  4. Distinctive:

    If the sibling is absent: note silently, do not prompt or create it.

    line 54
  5. Distinctive:

    When the heir observes friction worth surfacing:

    line 70
  6. Very specific:

    Write one markdown file to feedback/

    line 73
  7. Distinctive:

    Commit and push (best-effort.

    line 76
  8. Distinctive:

    Do NOT delete announcement files (they persist for all heirs)

    line 85
  9. Very specific:

    Remove ai_memory_root and ai_memory_exclude from cognitive-config.json

    line 118

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

AI-Memory Setup

Alex_ACT_Memory is a local-first repo (sibling clone at ../Alex_ACT_Memory) where ACT heirs exchange feedback, announcements, knowledge, and optional encrypted profile data. A remote is optional and sharing is the user's decision. This skill covers resolution, bootstrapping, and ongoing read/write operations.

Resolution Modes

resolveMemoryBus(repoRoot) is read-only by default: it returns the existing ../Alex_ACT_Memory sibling or null. It does not pull, clone, or scaffold.

Explicit setup callers may pass { mutate: true }, enabling this sequence:

  1. Sibling exists: use it and pull updates (best-effort)
  2. Clone from remote: sibling absent and remote configured → git clone
  3. Scaffold: clone fails or no remote → create a minimal local repo

The mutation gate preserves user control. Session checks do not create a remote, clone, scaffold, or pull merely because Memory was mentioned.

Folder Structure

../Alex_ACT_Memory/
  README.md
  announcements/           # Fleet-wide release notes and guidance
    README.md
  feedback/                # Heir friction reports
    README.md
  knowledge/               # Shared knowledge packages
    index.json
    README.md
  profile/                 # Protected encrypted profiles
    <username>/user-profile.encrypted.json
  insights/                # Analytical insights
  docs/
    MIGRATION.md           # OneDrive → git migration guide

Operations

Detect (session start)

On session start, resolve the existing sibling via resolveMemoryBus(repoRoot). If found:

  1. Check announcements/ for unread files
  2. Report any new announcements to the user (one line each)
  3. Do NOT read or report feedback (that's the Supervisor's job)

If the sibling is absent: note silently, do not prompt or create it.

Bootstrap (first time)

Handled only when bootstrap setup enables Memory. bootstrap-heir.cjs calls resolveMemoryBus(targetAbs, { mutate: SETUP_MEMORY }); cloning or scaffolding therefore occurs only when the setup flag is true.

To manually resolve:

node .github/scripts/_registry.cjs --resolve .

Write Feedback

When the heir observes friction worth surfacing:

  1. Resolve memory bus
  2. Write one markdown file to feedback/
  3. Filename format: YYYY-MM-DD-<heir-id>-<short-slug>.md
  4. Strip project specifics per cross-project-isolation.instructions.md
  5. Commit and push (best-effort; push may fail without remote)

Read Announcements

On session start (triggered by greeting-checkin.instructions.md):

  1. Resolve memory bus
  2. List files in announcements/ (skip README.md)
  3. For each unread file, report the title and date
  4. Do NOT delete announcement files (they persist for all heirs)

Profile

User profiles live at profile/<username>/user-profile.encrypted.json. Read on demand via readProfile(memoryRoot, { projectRoot }); write locally via writeProfile(memoryRoot, profile, { projectRoot }). Both resolve ALEX_ACT_MEMORY_PASSWORD from the process environment, an explicit file, the authorized project's local .env, then the sibling Memory clone's local .env.

Every .env must be ignored and untracked in the repository that owns it. Edition verifies ignore status before reading. Project values override Memory values. Missing authorization returns no profile; wrong passwords or tampering fail closed. Profile functions never commit or push. The user decides whether to synchronize the encrypted envelope.

Explicit workflows may call readMemorySecret(memoryRoot, variableName, { projectRoot }) for one exact variable. The API never enumerates or imports Memory .env, mutates process.env, prints values, or runs during greeting. Use project-local overrides, VS Code SecretStorage, or an enterprise secret manager when all heirs on the machine should not share a secret.

Programmatic API (_registry.cjs)

FunctionPurpose
resolveMemoryBus(repoRoot?, options?)Returns the sibling or null by default; { mutate: true } enables pull/clone/scaffold
scaffoldMemoryRepo(memoryPath)Creates minimal folder structure + git init
readMemorySecret(memoryRoot, variableName, options?)Returns one exact named local secret using process/explicit/project/Memory precedence
readProfile(memoryRoot, options?)Decrypts an authorized profile on demand, or returns null when absent/unavailable
writeProfile(memoryRoot, profile, options?)Writes an encrypted envelope locally and atomically; never commits or pushes

CLI

node .github/scripts/_registry.cjs --resolve [dir]     # Resolve memory bus
node .github/scripts/_registry.cjs --profile [dir]     # Check authorized profile availability without printing content

Migration from OneDrive-based AI-Memory

Users upgrading from Edition <3.0.0 need a one-time migration:

  1. Clone Alex_ACT_Memory as a sibling: git clone https://github.com/fabioc-aloha/Alex_ACT_Memory.git ../Alex_ACT_Memory
  2. Copy content from old <cloud-drive>/AI-Memory/ to the new repo
  3. Remove ai_memory_root and ai_memory_exclude from cognitive-config.json
  4. Full guide: ../Alex_ACT_Memory/docs/MIGRATION.md

Anti-Patterns

Anti-patternCorrection
Hardcoding an absolute path to memoryUse read-only resolveMemoryBus(); opt into mutation only during explicit setup
Writing feedback without stripping project contextAlways apply cross-project-isolation before writing
Reading feedback as a heirFeedback is for the Supervisor; heirs read announcements only
Calling scaffoldMemoryRepo directlyUse resolveMemoryBus(..., { mutate: true }) during explicit setup
Expecting OneDrive/iCloud/Dropbox discoveryRemoved in Edition 3.0.0; memory bus is git-only now
Assuming Memory must have a remoteLocal-only is valid; configuring or sharing a remote belongs to the user
Keeping secrets in tracked files or copying them across heirsUse exact-name lookup from an ignored project or Memory .env, SecretStorage, or an enterprise secret manager
Importing every Memory .env variableRequest one exact variable for one explicit operation
Automatically loading a profile on greetingDecrypt only when an authorized workflow explicitly needs it

Falsifiability

  • This skill has failed if heirs report memory bus resolution errors within 30 days of following the setup procedure
  • The 3-state algorithm is wrong if scaffoldMemoryRepo produces repos that can't later accept a remote and sync
  • The bootstrap sequence is stale if _registry.cjs exports change and this skill references obsolete functions

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.