Implementation Plan · F-100 · Vacancy-Application-Form
Vacancy-Application-Form — Vertical-Slice-Decomposition
Quelle
Decomposed aus dem PRD
2026-05-25-vacancy-application-form-prd via Skill
solcom-to-issues. Architektur ist auf
Pfad C+ (Email-Inbox-Import + Webhook-ACK) fixiert — Begründung in der Spike-Section des Story-Hubs
F-100 (17 Live-Probes, Multiposting-Partner-Scope-Gate). Pfad A (direkter HTTP-POST) bleibt als Future-Refactor-Option an Sub-Task #7 (P2503-191) gekoppelt.
01
Vertical Slices & Jira-Sub-Tasks
Sieben tracer-bullet-Slices — jeder schneidet end-to-end durch alle benötigten Layer und ist auf seiner Granularität demoable oder verifizierbar. Reihenfolge in der Tabelle = Dependency-Order (Blocker zuerst).
| # |
Title |
Type |
Jira-Key |
Status |
Blocked by |
Deckt PRD-User-Stories |
| 1 |
Submit landet in Personio-Inbox — Webform + Sub-Route + Queue + Mail-Send (end-to-end demoable) |
AFK |
P2503-184 |
IDEE |
— |
US 1, 2, 3, 4, 5, 7, 8, 10, 11, 18, 19, 20 |
| 2 |
Webhook-ACK schließt den Loop — Subscription + Receiver + Conditional-Retention |
AFK |
P2503-186 |
IDEE |
P2503-184 |
US 6, 15, 16, 17 |
| 3 |
DLQ-Recovery für HR — Retry-Counter + DLQ-Admin-UI + HR-Notification |
AFK |
P2503-187 |
IDEE |
P2503-184 |
US 12, 13, 14, 17 |
| 4 |
Smoke-Test + Kernel-Tests — täglicher Health-Check + Mock-Coverage |
AFK |
P2503-188 |
IDEE |
P2503-186 |
PRD-Testing-Decisions (Drush-Smoke + Mock-Coverage) |
| 5 |
Personio-Tenant-Config — Inbox-Adresse + Custom-Apply-URL pro Job einrichten |
HITL |
P2503-189 |
IDEE |
— (parallel zu #1; harte Vorbedingung für Production-Cutover, nicht für Code-Implementation) |
US 10, 20 (Vorbedingung) |
| 6 |
AVV mit Personio prüfen — HR/Legal-Sign-off + Snapshot |
HITL |
P2503-190 |
IDEE |
— (parallel zu allen Code-Slices; harte Vorbedingung für Production-Cutover) |
PRD-DSGVO-Decisions (AVV-Faktencheck) |
| 7 |
Personio-Account-Manager kontaktieren — Multiposting-Partner-Scope klären (parallel, nicht-blockierend) |
HITL |
P2503-191 |
IDEE |
— (parallel zu allen Slices; Outcome steuert eventuelle Folge-Story Pfad-A-Refactor) |
PRD-Out-of-Scope (Future-Refactor-Option) |
Deduplizierter Duplikat-Vorfall: Beim ersten acli-Create wurden zwei identische Items für Slice #1 angelegt (acli liefert vollständiges JSON-Response erst beim zweiten Aufruf zurück). P2503-185 ist als Duplikat markiert (Summary umbenannt, Label duplicate, agent-ready entfernt). Delete-Permission fehlt; User-Action: Transition nach „Abgebrochen“ oder Admin-Delete.
02
Sequencing & Dependencies
Code-Slices laufen in folgender Dependency-Reihenfolge:
- P2503-184 (Slice #1) ist Tracer-Bullet-Slice 1: erste vollständige Submit-Mail erreicht Personio-Inbox. Demonstrierbar via DDEV-Smoke-Test gegen Test-Inbox-Adresse, kein Webhook nötig.
- P2503-186 (Slice #2) und P2503-187 (Slice #3) sind parallel claimbar, beide blocked durch #1. Slice #2 schließt den ACK-Loop, Slice #3 baut die HR-Recovery.
- P2503-188 (Slice #4) liefert Smoke-Test + Kernel-Tests über den gesamten Pfad. Blocked durch #2, weil der Smoke-Test den vollen ACK-Read-back braucht.
HITL-Slices laufen orthogonal zur Code-Implementation:
- P2503-189 (Slice #5) und P2503-190 (Slice #6) sind harte Vorbedingungen für Production-Cutover, nicht für Code-Implementation. Code lässt sich gegen Test-Inbox-Adressen entwickeln, bevor der SOLCOM-Tenant final konfiguriert ist.
- P2503-191 (Slice #7) ist Account-Manager-Outreach; Outcome bestimmt, ob eine Folge-Story Pfad A (direkter HTTP-POST gegen
POST /v1/recruiting/applications) angelegt wird.
Subagent-Claim-Strategie: Slice #1 zuerst (größtes End-to-End-Risiko, da Personio-Inbox-Parsing nicht durch Spike validiert ist). Slices #2 + #3 parallel danach. Slice #4 als CI-Hardening-Schritt. HITL-Slices werden parallel von HR/Personio-Admin getrieben.
03
AFK vs HITL — was ein Subagent grabben kann
Vier Slices sind AFK-claimbar (Subagent kann ohne menschliche Rückfrage implementieren, ein PR zur Review hochziehen und nach grünem Review mergen). Drei Slices sind HITL (Human-in-the-Loop — Personio-Admin, HR/Legal, oder Marketing/Account-Manager-Outreach).
| Type | Slices | Begründung |
| AFK |
#1 (P2503-184), #2 (P2503-186), #3 (P2503-187), #4 (P2503-188) |
Reine Code-/Schema-/Config-Slices. Acceptance-Kriterien sind in der Story-Hub-QA-Plan-Tabelle als Click-Pfade reproduzierbar. Ralph-Loop kann nach Code-Lokal-Verify und grünem Acceptance-Check selbst PR-Open übernehmen. |
| HITL |
#5 (P2503-189) — Personio-Tenant-Config |
Erfordert Admin-Login in Personio-UI, Inbox-Adresse einrichten, pro Job Custom-Apply-URL setzen, Parsing-Test mit echter Test-Mail. Kein Drupal-Code-Outcome. |
| HITL |
#6 (P2503-190) — AVV-Prüfung |
Rechtliche Prüfung des Auftragsverarbeitungs-Vertrags, HR/Legal-Sign-off. Snapshot in docs/context/ wird von User via solcom-docs-ingestion-Agent angelegt. |
| HITL |
#7 (P2503-191) — Personio-Account-Manager-Outreach |
Externe Stakeholder-Kommunikation, Vertragsverhandlung. Outcome-Dokumentation im Story-Hub durch User. |
04
Risiken & Mitigation
- Personio-Inbox-Parsing-Verhalten ist nicht durch Spike validiert. Slice #1 hat das größte End-to-End-Risiko, weil unklar ist, ob das Personio-Mail-Parsing strukturierte Key-Value-Bodies in Application-Felder mappt, oder ob alles im Free-Text-Notes-Feld landet. Mitigation: erste Slice-#1-Iteration enthält explizit einen Format-Probe-Schritt mit 2-3 Variationen (Plain-Key-Value, Markdown-strukturiert, HTML-strukturiert), Personio-Antwort wird als Worklog im Story-Hub festgehalten.
- SOLCOM-Personio-Tenant-Mail-Inbox ist heute möglicherweise nicht eingerichtet. Slice #5 (HITL) muss vor Production-Cutover abgeschlossen sein. Wenn die Inbox-Aktivierung in der Smoke-Test-Phase scheitert, fallen wir auf den dokumentierten Pfad-B-Notfall-Fallback (Hosted-Page-Redirect) zurück.
- Personio-Webhook-Service hat keine dokumentierte SLA für Webhook-Zustellung. Falls Webhooks unregelmäßig oder gar nicht ausgeliefert werden, deckt der 24h-ACK-Timeout-Cron (Slice #2) den Worst-Case ab und alarmiert HR.
- Mail-Server-Reputation & SPF/DKIM/DMARC für SOLCOM-Absender. Personio-Inbox filtert eingehende Bewerbungs-Mails wie ein normales Mail-Postfach. Wenn die SOLCOM-Absender-Reputation niedrig ist oder DMARC fehlschlägt, landen Mails im Personio-Spam-Ordner. Slice #1 schließt einen DKIM/DMARC-Verifikations-Test als Implementation-Vorbedingung ein.
05
Worklog
2026-05-25 · Decomposition · solcom-to-issuesMarc Philipps
7 vertikale Slices aus PRD synthetisiert (von ursprünglich 10 in der PRD-Sub-Task-Drafts-Sektion reduziert). User-Approval auf 8-Slice-Vorschlag erteilt, Credential-Rotation-Slice gestrichen (Credentials liegen bereits, brauchen erst pre-Production-Rotation). Default-Dependencies übernommen. Sub-Tasks via acli jira workitem create --from-json publiziert mit ADF-Description (paragraph + heading L2 + bulletList) und Labels ready-for-agent + backlog:F-100. Erster Create produzierte versehentlich ein Duplikat (P2503-185); umgelabelt zu duplicate, Summary umbenannt, ohne Delete-Permission als orphan-Issue stehengelassen.