Commit Graph

2 Commits

Author SHA1 Message Date
salvacybersec
cbb28903fb feat(build): user-agnostic personalized variant routing
Personalized variants (default trigger: salva.md) compile to a separate
top-level folder so generated/<persona>/ stays clean of per-user content.
Both the trigger variant filename(s) and the output folder name are
config-driven via config.user — the build is truly user-agnostic.

Build changes:
- Module-level _RUNTIME dict cached by configure_runtime(config) at startup
- resolve_personalized_variants(config) — config.user.personalized_variants
- resolve_personalized_output_dirname(config) — slug-derives from
  user.name (e.g. "Salva" → "salva-personas") with explicit override key
- resolve_personalized_source_dirname(config) — defaults to literal
  "personalized" (gitignorable, user-name-independent)
- iter_persona_output_dirs() — single helper used by all install_*()
  functions to transparently iterate both layouts
- build_persona() routes salva variants based on _RUNTIME at write time
- build_skills_index() also scans <repo>/personalized/skills/ so personal
  skills (with user-private data) merge into the shared skill index
- main() picks up persona dirs from BOTH personas/ and personalized/

New config keys (all optional):
- user.personalized_variants
- user.personalized_output_folder
- user.personalized_source_folder

Output layout (e.g. for user.name="Salva"):
- generated/<persona>/general.{json,yaml,prompt.md}     (shared)
- generated/<persona>/<spec>.{json,yaml,prompt.md}      (shared)
- generated/salva-personas/<persona>/salva.{json,yaml,prompt.md}  (private)

Source layout:
- personas/<persona>/general.md, <spec>.md              (committed)
- personalized/<persona>/salva.md                       (gitignored)
- personalized/skills/<skill>/SKILL.md                  (gitignored)
- personalized/_user_context.md                         (gitignored)

Adds /personalized/ to .gitignore. Documents the new layout in CLAUDE.md
and README.md. Maps linkedin-content-strategy → herald/forge/frodo/ghost
in the default skill persona map.
2026-05-07 16:49:01 +03:00
salvacybersec
6601d55e59 feat: 30 new variants — deep intel/military + professional specializations
Intel/Military Deep (18 variants):
  frodo/pakistan, india, nato-alliance, nuclear, energy-geopolitics, turkey
  marshal/russian-doctrine, chinese-doctrine, turkish-doctrine, iranian-military
  warden/drone-warfare, naval-warfare, electronic-warfare
  centurion/ukraine-russia, ottoman-wars
  wraith/case-studies (Ames, Penkovsky, Cambridge Five)
  echo/electronic-order-of-battle
  ghost/russian-info-war (IRA, GRU cyber, dezinformatsiya)
  scribe/cold-war-ops (CIA/KGB ops, VENONA, Gladio)

Professional Specializations (12 variants):
  neo/social-engineering, mobile-security
  phantom/bug-bounty
  specter/firmware
  bastion/incident-commander
  sentinel/darknet
  oracle/crypto-osint
  marshal/wargaming
  corsair/proxy-warfare
  polyglot/swahili
  forge/agent-dev

Dynamic config system:
  config.yaml — user-specific settings
  config.example.yaml — template for new users
  build.py — config-aware with {{variable}} injection + conditionals

Total: 108 prompt files, 20,717 lines, 29 personas

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 02:38:41 +03:00