runneth-classic: infer + confirm naming conventions during onboarding - #100
Open
rezakhadjavi wants to merge 1 commit into
Open
runneth-classic: infer + confirm naming conventions during onboarding#100rezakhadjavi wants to merge 1 commit into
rezakhadjavi wants to merge 1 commit into
Conversation
Performance creative work depends on naming conventions to translate user phrases like 'the May ads' or 'the Q4 launch campaigns' into exact campaignName / adsetName / adName filters. Without a captured convention, the orchestrator either guesses or runs filter-reference round-trips on every turn. Phase 0 additions: - During the 365-day creative library pull (the same one that powers the graveyard inference), extract structural patterns in campaignName, adsetName, and adName fields. Identify separators (_, -, |, /), positional segments, prefixes, and abbreviations. - Decode each position: market code, objective, product line, audience, hook tactic, format, iteration number, date code, persona. - Save inference to workspaces/<slug>/naming-conventions.md so the orchestrator's slice-integrity rule reads it on every chain run. Phase 1 additions: - New Turn 4d — surface the inferred decoding with real examples from the workspace's actual data, ask the customer to confirm and fill in segments that weren't obvious from names alone. Update the file with the confirmed convention. - Only fires if Phase 0 surfaced confident structural patterns. If names look random or human-readable, skip and note the absence so the orchestrator knows to fall back to motion meta filter-reference for fuzzy phrases. How the orchestrator uses it: - Step 0 re-anchor reads naming-conventions.md on every chain run - Slice-integrity user.md rule references it when interpreting user filter phrases — 'May ads' becomes campaignName includes '0526' automatically, 'lip balm launch' becomes campaignName includes 'LipBalm', 'question hooks from UGC test' becomes adName includes 'Question' AND adName includes 'UGC' - Filter construction skips filter-reference round-trips when the convention decodes the user's phrase directly
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR adds
Naming convention inference + confirmation as part of
runneth-classicsetup.Performance creative work lives or dies on naming conventions. Customers say "the May ads" or "the lip balm launch" or "the question hooks from the UGC test" — and the agent needs to translate those phrases into exact
campaignName/adsetName/adNamefilters. Without a captured convention, the orchestrator either guesses (sometimes wrong) or runsmotion meta filter-referenceround-trips on every turn that contains a fuzzy phrase. Neither is great.This PR makes naming convention discovery part of the standard onboarding flow.
Phase 0 addition
During the 365-day creative library pull (the same one that powers graveyard inference), Phase 0 also extracts structural patterns in:
campaignNameadsetNameadNameIt looks for common separators (
_,-,|,/), consistent positional segments, repeated prefixes, and abbreviations. The goal is to decode each segment: market code, objective, product line, audience, hook tactic, format, iteration number, date code, persona, anything else encoded in names.Saved to
/agent/brain/runneth-classic/workspaces/<slug>/naming-conventions.mdso the orchestrator's Step 0 re-anchor reads it on every future chain run.Phase 1 addition — Turn 4d
Surface the inferred decoding as questions, using real examples from the workspace's actual data:
Customer corrects what we got wrong and fills in segments that data alone couldn't decode (e.g., "P1/P2/P3 = persona 1/2/3 in our strategy matrix").
The turn only fires if Phase 0 surfaced confident structural patterns. If names look random or human-readable, skip silently and note the absence in
naming-conventions.mdso the orchestrator knows to fall back tomotion meta filter-referencefor fuzzy phrases rather than guessing at structure.How the orchestrator uses it
naming-conventions.mdon every chain run.user.mdrule references it when interpreting user filter phrases:campaignName includes "0526"campaignName includes "LipBalm"adName includes "Question" AND adName includes "UGC"motion meta filter-referenceround-trips when the convention decodes the user's phrase directly. Filter-reference becomes a fallback for cases the convention doesn't cover, not a default path.Files changed
Only
runneth-classic/setup-runneth-classic/SKILL.md. Adds 53 lines covering the Phase 0 extraction step and the new Turn 4d.Cumulative iteration progress
This is the third PR layering improvements onto the original
runneth-classicinstall after real test installs:All against the same
runneth-classic/setup-runneth-classic/SKILL.md. Each builds on the last.