| name | profile-module |
| description | Profile Module. Consolidates Socratic session transcripts into user_profile.json and synchronizes Project README metadata. |
| metadata | {"version":"1.0.0","last_updated":"2026-05-26","status":"active","task_type":"open-ended"} |
Profile Module
Purpose
The Profile Module turns Socratic session output into a stable, structured user profile for downstream modules, and keeps the project README aligned with the latest cognitive snapshot.
Core Responsibilities
- Read the latest Socratic session (
diagnostics/session_*.md) in the active project.
- Read and merge into
user_profile.json (single source of truth).
- Extract and canonicalize
[INSIGHT], [OPEN_THREAD], [READING_REF] and optional signals.
- Detect contradictions and generate clarification open threads.
- Update the project
README.md snapshot fields without breaking structure.
- Extract
[SEARCH_SEED] markers (supervised sessions only) and supplement empty seed papers from matrix.json adjacent cells.
Trigger Conditions
Use this module when:
- A Socratic session finishes and a new
session_*.md exists.
user_profile.json needs to be initialized or incrementally updated.
- The README snapshot must reflect the latest session.
- A supervised session ends or pauses, and
[SEARCH_SEED] markers need to be processed.
Inputs
workspaces/ProjectX/diagnostics/session_*.md
workspaces/ProjectX/user_profile.json (optional)
workspaces/ProjectX/README.md
workspaces/ProjectX/matrix.json (optional, used to supplement empty seed_paper_ids)
Outputs
- Overwritten
workspaces/ProjectX/user_profile.json
- Updated
workspaces/ProjectX/README.md (only approved fields)
Strict Rules
- Extract all tag lines and preserve them in
raw_items.
- Canonicalize and deduplicate for
canonical_items.
- Do not modify session files.
- Do not update
matrix.json or search literature.
- Update README only in the specified fields and append to Evolution Logs.
- Extract
[SEARCH_SEED] from supervised sessions and write to canonical_items.search_seeds[].
- When
seed_paper_ids is empty, read matrix.json to supplement from adjacent cells.
- Mark
search_seeds status as active upon creation; downstream Literature Scout sets it to consumed.
Agents
profile_agent (primary executor)