01 Purpose
WovenLogic holds a campaign’s brief as named facts, such as price, date, offer, and claims, and builds every asset from templates that use those facts.
Intended user: a small business producing its own emails, pages, posts, flyers, and scripts.
02 Problem and Constraints
One campaign turns into many assets. When a fact or a date changes, older versions can stay in circulation.
- Facts are linked into assets as tokens, not retyped. Text that repeats a fact’s value without its token is flagged.
- Approving an asset freezes the fact values it used.
- Approval is refused while a token is missing or a fact has changed since the draft.
- No publishing, scheduling, or measurement. Placements are recorded by hand, and nothing is sent or uploaded.
03 What Was Built
- Screens for Campaigns, Brief and Facts, Sources, Assets, the asset editor with versions, approval, and placements, Needs Update, and History and Export.
- A brief of named facts with their sources and revision history.
- An asset editor with a preview that fills in the current facts.
- Change tracking: when the brief changes, every asset that used the changed fact is marked as needing an update, or as out of date if it is already in circulation.
- Export of approved versions as text files, with a manifest and the brief history, to a folder you choose.
- A synthetic sample library, kept in its own file and labeled on every screen.
04 Design and Engineering Decisions
- 01
Native, No Web View
SwiftUI and AppKit in one Swift package, with no third-party packages.
- 02
Facts as Tokens
One change in the brief must reach every asset that uses it, so facts are typed tokens rather than copied text.
- 03
Approval Matches the Brief
An approved version must match the current brief, so approval waits until every token resolves and no fact has changed.
- 04
Handoff Without Upload
Export writes approved versions as .txt files, a manifest.json, and BRIEF-HISTORY.md to a folder you choose.
- 05
Separate From MarketHaven
Publishing, scheduling, and measurement belong to MarketHaven, so WovenLogic stops at approved assets placed by hand.
05 Architecture
06 Verified Results
| Measure | Result | Context |
|---|---|---|
| Release build | Built with no compile errors | Swift release build, 4 November 2026, on the Mac |
| Headless self-test | 15 of 15 passing | Rules and storage checked on throwaway files, same run |
| Window interface test | 16 of 16 passing | A real window, every screen, with button presses through the accessibility tree, same run |
| Normal launch | Opened, ran, and quit cleanly | No real library file was created |
| Hand click-through | Not yet done | Forms were exercised through the same model calls they make, not typed into by a person |

07 Third-Party Components
None. WovenLogic is built with Apple’s Swift, SwiftUI, and AppKit, with no third-party packages, no web view, and no network access.
