Productivity · Store package · v0.4.0
Takes a built oshal product to traffic, users, and revenue: campaign board with stage-gated intake, per-channel consent (explicit opt-in, default OFF), UTM-tagged links, a deterministic metrics scorecard, experiment registry, budget proposals a human approves, and weekly review tickets worked by inline concierge bots only after human approval.
Opens ?app=marketing-engine on the demo deployment. On your own box it is the same URL.
3 screens in the ribbon · opens on marketing-engine
How it runs
Not a chat window with a plugin behind it. Every step below is something the app declares in its manifest, which is why it can be told to you plainly.
Opening ?app=marketing-engine loads its 3 screens into the shared cockpit, starting on marketing-engine. The ribbon, the ticket list and the assistant are already there — the app contributes views, not a second application to log into.
The assistant classifies what you asked for and hands it to the bot that owns that domain. You do not pick the app, and you do not learn a command — routing is by declared capability, not by keyword matching a menu.
campaign-director, market-analyst, growth-analyst, launch-coordinator are accountable for the work. 16 declared capabilities say what it is trusted to do; the tokens and dollars it spends are recorded against that identity, so the cost has a line item rather than disappearing into a monthly bill.
The connector call happens in a fixed server operation outside the model. Only the normalized result reaches reasoning — the token stays encrypted and scoped to you.
Scheduled and swarm-initiated work enters the queue as a marketing-campaign ticket. It is durable, it has an owner, you can watch it move through its phases, and if it fails it fails somewhere you can open and read.
Back on the app's own screens, as state you own — not as a chat message you have to scroll back to find.
With the assistant
The assistant is the front door. It classifies your request, delegates to the bot that owns the domain, and answers in one voice — so you do not have to know which of the applications this happens to live in.
campaign-director, market-analyst, growth-analyst, launch-coordinator advertise what they are accountable for, and the assistant matches against that.Accountability
Declared in the manifest and bound to the bot above — so "what is this thing allowed to do" is a list you can read, not a prompt you have to trust.
What it needs
linkedin mastodon bluesky resend google google-search-console posthog twitter meta-business. Your token is encrypted per user and consumed by a fixed server operation — the model never sees it.notifications — reached by declaration, never by copying platform code into the package.Also on the productivity shelf
One outline, three artifacts — a themed PowerPoint deck, Word document, or live Excel workbook
Learn more → ProductivityStoreYour connected message feeds in one place - live stream, activity trends, hot channels, and trending topics over your own Slack messages, with a…
Learn more → ProductivityStoreEvery account you've connected, in one place - click to jump straight into Gmail, LinkedIn, your smart-home app, and more, reconnect a login that's…
Learn more → ProductivityStoreYour inbox, calendar, and day in one surface - the ADR-037 reference comms app
Learn more →Underneath
This app does not ship its own queue, its own credential store or its own cockpit. It declares what it needs and the platform provides it.