feat: capture campaign metadata in enriched campaign.yaml at init#116
feat: capture campaign metadata in enriched campaign.yaml at init#116susiejojo wants to merge 1 commit into
Conversation
9e59a14 to
c6c3d90
Compare
PR Review — Summary of FindingsCritical (1)URL parsing bug — HTTPS GitHub URLs misparse
Fix: Use Important (3)
Design Question: GitHub-centric
|
| Item | Verdict |
|---|---|
Shallow copy (dict(campaign)) |
Safe — immediately serialized and discarded |
| Subprocess latency (up to 3 git calls) | Runs once on fresh init only |
| Nested try/except pattern | Correct for independent-degradation design |
| Function size (~40 lines) | Single responsibility, don't split |
Recommendation
Request changes for the URL parsing bug and example revert. The rest is solid.
At campaign init, writes an enriched copy of campaign.yaml into the work directory with a `runtime:` block containing target_repo, target_commit, nous_version, and started_at. Also adds optional `metadata` field to campaign schema for user-supplied tags/goals. Each git/importlib call is individually failure-tolerant — missing git or non-repo targets degrade gracefully to null. The enriched copy is only written on fresh init (not resume). Closes AI-native-Systems-Research#115 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
c6c3d90 to
476474e
Compare
|
Addressed in 476474e:
Left |
Summary
campaign.yamlinto the work directory enriched with aruntime:block (target_repo,target_commit,nous_version,started_at)metadatafield to campaign schema for user-supplied tags/goalsRelated Issue
Closes #115
Design
One enriched file per run captures everything — original config, user metadata, and runtime context. The source campaign.yaml is never modified. The enriched copy is only written on fresh init (not resume).
Test Plan
🤖 Generated with Claude Code