fix(archive): derive <company>_<role> as a single path component (#329)

Extends the canonical Subfolder-naming rule by citation to all six archive derivation sites (apply, gmail-sync, interview, notion-sync, outcome, assistant SKILL.md), adds a fail-closed guard for an empty derived name, and pins every site with mutation-verified tests. framework_version 1.3.3 -> 1.3.4.

jakob1379 independently specified the same fix in his fork's issue #22 before this PR's rework.

Co-authored-by: ayobamiseun <66267222+ayobamiseun@users.noreply.github.com>
This commit is contained in:
Ayobami Adegoke
2026-08-18 21:03:16 +02:00
committed by GitHub
co-authored by ayobamiseun
parent 5c423b4064
commit 2ff1085254
9 changed files with 122 additions and 9 deletions
+5
View File
@@ -116,6 +116,11 @@ A record of past job applications. Each subfolder is one application.
You can maintain these folders by hand, or let the **`/outcome`** command do it: it records progress updates and final results conversationally, archives the submitted drafts and, if `/apply` has not already written it, the posting text, keeps `outcome.md` in the format below, and updates `job_search_tracker.csv` in the same step.
**Subfolder naming:** `<company>_<role>` — lowercase, underscores for spaces.
Every character that is not a letter, digit or underscore is dropped (so `Novo Nordisk A/S`
becomes `novo_nordisk_as`), runs of underscores collapse to one, and leading and trailing
underscores are trimmed. If the derived name is empty, stop and ask the user for a company or
role containing at least one letter or digit; do not create a file or directory. Every non-empty
result is therefore a single path component whatever the posting contains.
Examples:
```