investor_profile · git:20260906.f9cef19 · 2026-09-06 · sha256 1fea9fdeedb9b1f9
investor_profile git:20260906.f9cef19A
Immutable. This exact content is served forever at /api/v1/blob/1fea9fdeedb9b1f9.
--- name: investor_profile description: Compose investor profiles from stored person profiles and manual investment track records. Use for roster members with LinkedIn IDs; composition does not discover people or regenerate source profiles. --- # Investor profile Append the matching manual track record and preferences to stored person profiles. ## Inputs and outputs The async `investor_profile` accepts `source_dataset="sictic-members"` and optional `names: list[str]`, returning `list[InsightFile]`. Only selected roster members with LinkedIn IDs and matching stored profile files are eligible. Preserve each source model variant in the output. ## Workflow and dependencies Read the roster and files under its `person-profile` insight directory. Read track records from `datasets/track-record/<linkedin-id>.md` in the same dataset; save the combined result under `insights/investor-profile/<linkedin-id>-<model>.md`. Use configured dataset locations for these paths. Direct composition requires the existing roster and person-profile directory. It does not refresh these inputs. Bulk refresh declares `person-profile` as its prerequisite. `read_investor_profiles(source_dataset, names)` is a separate read-only selector returning a name-to-content dictionary, without composition. ## Side effects and failure behavior Composition calls no LLM and performs no ingestion, discovery or LinkedIn fetch. It writes changed output content and retains identical files. Missing track records produce a note; unmatched requested names and ineligible files are skipped. A missing roster or source directory raises. Per-file failures leave successful outputs saved, then raise instead of returning a partial list. Known manual-output conflict: a manual person-profile source can cause composition to overwrite the corresponding edited manual investor profile. This remains an unresolved violation of [manual preservation](../standards_and_architecture/SKILL.md#naming-reading-and-saving), not a supported exception to that rule. ## Usage ```bash conda run -n sictic-env python -m skills.harness -- /investor_profile --source-dataset "<DATASET>" ``` The direct CLI also accepts `--person "<NAME_1>, <NAME_2>"`; omission selects all eligible roster members. Both CLIs default to `sictic-members`. ## References - [Composition and read-only selector](investor_profile.py) - [Source profile workflow](../person_profile/SKILL.md) - [Shared identity and matching](../standards_and_architecture/SKILL.md#identity-and-matching)