GuardedBenchmark similar products
Workflow.Benchmark - site Brainstorm
BRAINSTORM.23e: start a brainstorm from what exists - a form asks what to compare, then the similar products and a feature table, then the features worth adopting as Pending children (approve = adopt).
Started by
EventReceiver: WorkflowStart ContentType.MindMapNodeOn failure: no fallback seat - the run is recorded in its history only
1. Benchmark 1 SimilarHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Benchmark similar products(Skill.Benchmark)
Reads first: Tool.WebSearch (1500 ch)
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key benchmark-1-similar-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 1 of 2 of a BENCHMARK on this node. Using the FORM ANSWERS (domain, goal, products already known, how many) and the web search results, name the similar products or projects - the known ones first - with one line each on what they are and a source. Then compare them in a Markdown table, product by feature, with the features that matter for the goal. Never invent a product; say when the results do not cover something. Answer with ONE JSON object only: {"Title": "1 Similar - <how many products compared, at most 80 characters>", "Body": "<the list, then the table>"}.
2. Benchmark 2 FeaturesHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Benchmark similar products(Skill.Benchmark)
Reads first: Tool.SuggestIdeas (1500 ch)
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key benchmark-2-features-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 2 of 2 of a BENCHMARK on this node. The features worth adopting were just proposed as Pending child ideas (the tool result shows them). Write a short guide for choosing: which of them matter most for the goal in the FORM ANSWERS and why, and what to skip. The operator approves the ones to adopt on the map. Answer with ONE JSON object only: {"Title": "2 Features - approve the ones to adopt", "Body": "<the guide, a few short lines>"}.
GuardedBuild the site kit
Workflow.SiteKit - site Brainstorm
BRAINSTORM.28d: the New site outcome, step 1 - the approved spec as a PnP Provisioning Template under the node; approve it (edit first if needed), then Propose site kit.
Started by
EventReceiver: WorkflowStart ContentType.MindMapNodeOn failure: no fallback seat - the run is recorded in its history only
1. Build the site kitHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Shape the outcome(Skill.ShapeOutcome)
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key shape-kit-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
Turn the APPROVED spec under this node (the children titled Spec 1 Requirements, Spec 2 Data, Spec 3 Solution) into a site kit: ONE PnP Provisioning Template, schema 2022/09 (xmlns:pnp="http://schemas.dev.office.com/PnP/2022/09/ProvisioningSchema"): pnp:Provisioning, pnp:Templates, one pnp:ProvisioningTemplate with ID set to the node title without spaces; pnp:SiteFields with one CAML Field per column of Spec 2 Data (ID a GUID in braces, Name and StaticName without spaces, DisplayName, Type Text|Note|Number|Currency|DateTime|Choice|Lookup|User|Boolean|URL, Required TRUE or FALSE, CHOICES/CHOICE for a Choice, List="Lists/ListName" ShowField="Title" for a Lookup); pnp:ContentTypes with one pnp:ContentType per list (ID 0x0100 followed by 32 hex digits, Name, Description) and pnp:FieldRefs naming its fields by ID and Name; pnp:Lists with one pnp:ListInstance per list (Title, Url="Lists/NameWithoutSpaces", TemplateType="100", EnableVersioning="true", Description, a pnp:ContentTypeBinding Default="true" to its content type, and pnp:Views with each view of the spec as CAML: View DisplayName Url="Name.aspx" with ViewFields, Query and RowLimit). Use ONLY what the spec says; skip a column the spec does not define. Write every XML attribute in SINGLE quotes so the JSON needs no escaping. Answer with ONE JSON object only: {"Title": "Site kit - <the lists, at most 80 characters>", "Body": "<the PnP template XML, nothing else>"}.
GuardedCaravan tyre catalog research
Workflow.CatalogResearch.CaravanTyre - site ProductCatalog
The catalog research service for Caravan tyre models (the service catalog's 'Product catalog research'): one research phase on the free provider, filing a ResearchReport on ProductCatalog/ResearchReports. tools/catalog turns an approved report into catalog rows.
Started by
Transition: Submitted -> In sourcing, fallback Research workersOn failure: a task for Research workers
1. Caravan tyre catalog researchHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Caravan tyre catalog research(Skill.CatalogResearch.CaravanTyre) - Caravan tyre catalog researcher
Reads first: nothing
Writes: ContentType.ResearchReport to ProductCatalog/ResearchReports
Gate: Eval.CatalogResearch.CaravanTyre - 10 checks before writing,
1 golden (eval tier)
Model: implicit provider default
To Deterministic:
ResponseSchema; row key (OutputKey); declared model;
Task (the phase Goal)
Source replacement tyres - or complete wheels (tyre on rim) - for a caravan or light trailer: every candidate named in the task, from the manufacturer's data first, delivered to the requester's country. Prompt version 1.0.0. The task names the models. For EACH model, work through the sources in this order and cite every value (URL, and the page for a PDF): 1. the manufacturer DATASHEET PDF - search for it by brand and model number, read it, do not settle for the shop page; 2. INDEPENDENT TESTS (magazines, labs, testers who bought their own unit) - measured output against the rating, and how they measured; 3. CUSTOMER REVIEWS - rating, scale, number of ratings, and whether the source is independent, a marketplace or vendor-hosted; 4. COMMUNITY (forums, Reddit, owner reports) - pros, cons and failures; 5. OFFERS - shop, price, currency, whether VAT is included, shipping, stock, the date seen. A value you did not see in a source stays EMPTY and goes under "## Not found" - never estimate, never copy a similar model's value. The datasheet rows, one per feature, in this order (ETRTO class UN-ECE-R54 Commercial and trailer tyres (C, LT) release R54, then the extensions): SizeDesignation Size designation; Construction Construction (radial R or bias/cross-ply -); SectionWidth Nominal section width (mm); AspectRatio Aspect ratio (%); RimDiameter Rim diameter (in); OverallDiameter Overall diameter (mm); LoadIndexSingle Load index (single); LoadIndexDual Load index (dual); MaxLoadKg Maximum load per tyre (single) (kg); SpeedSymbol Speed symbol; PlyRating Ply rating (PR); CommercialMark C (commercial / reinforced) marking (yes/no); TubeType Tube type (TT) or tubeless (TL); ApprovedRimWidth Approved rim widths; EuLabelRolling EU label rolling resistance class; EuLabelWetGrip EU label wet grip class; EuLabelNoise EU label external rolling noise (dB); RimSize Rim size [Complete wheel: the rim as marked (e.g. 4.00Bx12, 4.50Jx12).]; BoltPattern Bolt pattern [Complete wheel: studs x pitch circle in mm (e.g. 4x100).]; CentreBoreMm Centre bore (mm) [Complete wheel: the rim's centre hole.]; OffsetEtMm Offset (ET) (mm) [Complete wheel: the rim offset as marked.]; DotDate Manufacture date (DOT) [The DOT week and year the seller states; caravan guidance: replace at about 6 years.]. If the task allows substitutes, also research these equivalents: 155R12C for 6.00-12 (Radial equivalent (155/80R12C): overall diameter about 553 mm, 2 percent wider, load index 88/86.); 165R12C for 6.00-12 (One size up: diameter about +3 percent, 9 percent wider - check the wheel arch and the rim width.). Every candidate, the requested item or a substitute, must pass these rules - say per candidate which pass, which fail and which cannot be checked from the sources: The size is the current size, or a declared substitute when substitutes are allowed; Overall diameter within 3 percent of the current tyre; Load per tyre at least the maximum mass divided by the number of wheels, with margin; The rim width is in the new tyre's approved rim widths; A complete wheel's bolt pattern is the hub's; The same construction (radial or cross-ply) and size on both wheels of an axle; Tubeless only on a tubeless-rated rim with a tubeless valve; otherwise fit a tube; A size not on the registration or COC may need an individual approval before inspection. In the reviews and community sources, look for these known failures and report each one you find with its source: Old stock: a DOT date years in the past sold as new; Sidewall cracking from age or UV while the tread still looks fine; A passenger-car tyre (no C marking) sold as a trailer tyre; Tubeless tyre fitted on a tube-type rim without a tube; Complete wheel with the wrong bolt pattern, centre bore or offset. Think briefly, then output ONLY one JSON object - no preamble. Emit a SINGLE ContentType.ResearchReport as JSON whose values are all STRINGS (multi-line values use \n line breaks - never a JSON array) with exactly these fields: Id (the literal text catalog- followed by the first model's name in lowercase with dashes), Title ("Catalog research: " + the models), DeckTopic (the category and models), ResearchFindings (markdown, per model: "## Datasheet" a table | Code | Feature | Value | Unit | Source |, one row per datasheet row above in that order, Value empty when not found; "## Picture" one line: the manufacturer's own image URL of THIS model (http or https, from the maker's site or datasheet), or "not found" - never a picture of another size or model; "## Independent tests" a table | Source | Measured | Rated | Method | URL |; "## Customer reviews" a table | Source | Rating | Scale | Count | Independence | URL | where Independence is Independent test, Third-party customer, Community or Vendor-hosted; "## Community" pros, cons and the failures found, each with its source; "## Offers" a table | Shop | Price | Currency | VAT | Shipping | Stock | Seen on | URL |; "## Not found" the rows you could not source), ResearchKeyClaims (the three facts a buyer most needs, one per line), ResearchCitations (one per line as '[n]: Title - URL'; the datasheet first), ResearchConfidence (Low, Medium or High - Low when no datasheet was found).
GuardedDaily intelligence brief
Workflow.DailyBrief - site Engineering
The operator's managed daily intelligence pipeline (Daily Intelligence P2). A single probe scouts the Engineering watchlist domains, synthesises today's brief, and auto-persists it as a ContentType.ResearchReport row in the invoking department's DailyBriefings list. Fired by Schedule.DailyBrief or on demand (POST /agency/workflows/Workflow.DailyBrief/run with the X-Invoking-Department header); shown on /board/briefings. Kept separate from Workflow.Research so daily briefs land in their own list.
Started by
Schedule: 35 6 * * * on EngineeringOn failure: no fallback seat - the run is recorded in its history only
1. Daily intelligence briefHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Daily research scout(Skill.Research)
Reads first: nothing
Writes: ContentType.ResearchReport to {{invokingDepartment}}/DailyBriefings, key brief-{{today}}
Gate: Eval.DailyBrief - 9 checks before writing,
0 golden (eval tier)
Model: implicit provider default
To Deterministic:
ResponseSchema; declared model;
Task (the phase Goal)
This phase ALWAYS produces today's Engineering intelligence brief, regardless of the task text - the task may be a generic scheduler trigger such as 'Scheduled run of ...' which you must DISREGARD entirely. Think briefly, then output ONLY the final JSON object - no analysis, no preamble, no commentary before or after it. Produce today's Engineering intelligence brief for the operator. Cover the highest-signal recent developments across the watchlist domains: AI agent frameworks and LLM advances; self-hosted and local LLM infrastructure; monetisation and the market for agent platforms; and SPICE self-improvement. Pick the few items that matter most and give each a concise why-it-matters for our platform. Emit a SINGLE ContentType.ResearchReport as JSON with exactly these fields: Title (a short headline for today's brief, e.g. 'Engineering Daily Brief'), DeckTopic (a short theme for today's brief), ResearchFindings (the brief body as markdown bullets - each bullet a finding followed by its why-it-matters), ResearchKeyClaims (the 3-7 sharpest takeaways, one per line), ResearchCitations (sources, one per line as '[ID]: Title - URL'; leave empty if you have none), ResearchConfidence (one of Low, Medium, High - be honest; prefer Medium or Low when the evidence is thin). Example shape: {"Title":"Engineering Daily Brief","DeckTopic":"AI tooling and local-LLM moves","ResearchFindings":"- Finding one. Why it matters: ...\n- Finding two. Why it matters: ...","ResearchKeyClaims":"Claim one\nClaim two","ResearchCitations":"[1]: Title - https://example.org","ResearchConfidence":"Medium"}. Honesty over enthusiasm.
GuardedDaily research
Workflow.Research - site Engineering
The PRIMARY-DIRECTIVE pipeline: a daily probe scouts a topic, summarises a research finding, and names the agency to dispatch it to. Fired by Schedule.ResearchDaily (the scheduler) or on demand. Generalises the WatchSignals scout from market signals to any research. The captain consults findings in the Research Library (/board/knowledge); dispatch is suggest-don't-seize.
Started by
Schedule: 30 6 * * * on EngineeringOn failure: no fallback seat - the run is recorded in its history only
1. Research scoutHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Daily research scout(Skill.Research)
Reads first: nothing
Writes: ContentType.ResearchReport to {{invokingDepartment}}/ResearchReports, key finding-{{today}}
Gate: Eval.ResearchFinding - 10 checks before writing,
0 golden (eval tier)
Model: implicit provider default
To Deterministic:
ResponseSchema; declared model;
Task (the phase Goal)
Given a research topic in the briefing, scout the outside world for new, relevant developments on it. Think briefly, then output ONLY the final JSON object - no analysis, no preamble, no commentary before or after it. Summarise the key findings (3-6 sentences) and CITE YOUR SOURCES as URLs - an uncited finding is an opinion, and the publish gate rejects it. Name the single agency that should act on the finding, and say so as the FIRST line of ResearchKeyClaims in the form 'Dispatch to: <agency>'. Suggest, do NOT act. Emit a SINGLE ContentType.ResearchReport as JSON with exactly these fields: Title (a short headline for the finding), DeckTopic (the topic you scouted), ResearchFindings (the finding body as markdown bullets - each bullet a development followed by why it matters to this platform), ResearchKeyClaims (the sharpest takeaways, one per line, the first being the 'Dispatch to:' line), ResearchCitations (sources, one per line as '[ID]: Title - URL'), ResearchConfidence (one of Low, Medium, High - be honest; prefer Medium or Low when the evidence is thin). Example shape: {"Title":"Agent frameworks converge on typed tool contracts","DeckTopic":"AI agent frameworks","ResearchFindings":"- Finding one. Why it matters: ...\n- Finding two. Why it matters: ...","ResearchKeyClaims":"Dispatch to: Agency.Research\nClaim two","ResearchCitations":"[1]: Title - https://example.org","ResearchConfidence":"Medium"}. Honesty over enthusiasm.
GuardedIOODARI
Workflow.Ioodari - site Brainstorm
BRAINSTORM.14: Intent, Observe, Orient, Decide, Act, Retrospect, Improve on one mind-map node - each step a Pending child under it.
Started by
EventReceiver: WorkflowStart ContentType.MindMapNodeOn failure: no fallback seat - the run is recorded in its history only
1. IOODARI 1 IntentHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key ioodari-1-intent-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 1 of 7 of the IOODARI loop: INTENT. State the purpose as ONE sentence describing a real-world outcome someone would rely on or pay for - not a process step. Name who benefits, what success looks like (how we will know), and the constraints. If the node reads like project management, go one level deeper and ask why it matters. Answer with ONE JSON object only: {"Title": "1 Intent - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
2. IOODARI 2 ObserveHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key ioodari-2-observe-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 2 of 7 of the IOODARI loop: OBSERVE. List what is actually known about this node right now - facts and data points from the subtree, its notes and the intent above - WITHOUT conclusions. Name what is missing and where to look (internal: lists, files, prior work; external: the standard or a practice to borrow before inventing). Answer with ONE JSON object only: {"Title": "2 Observe - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
3. IOODARI 3 OrientHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key ioodari-3-orient-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 3 of 7 of the IOODARI loop: ORIENT. Analyse: apply what is known, play devil's advocate against the first instinct, name the gap between current and desired, and the assumptions that need testing. Treat every suspected problem as a hypothesis until evidence supports it. End with 2-3 ranked options with their pros and cons. Answer with ONE JSON object only: {"Title": "3 Orient - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
4. IOODARI 4 DecideHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key ioodari-4-decide-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 4 of 7 of the IOODARI loop: DECIDE. Choose one option from the orientation and say why, grounded in it. Give the fallback if it fails, how success will be measured, the rollback, and the blast radius. Say whether this needs the owner's explicit approval (a new structure, money, anything irreversible). Answer with ONE JSON object only: {"Title": "4 Decide - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
5. IOODARI 5 ActHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key ioodari-5-act-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 5 of 7 of the IOODARI loop: ACT. Turn the decision into the smallest concrete next actions, in order, each one a task someone can start today - owner, first step, and what done looks like. Reuse what exists before building anything new. Answer with ONE JSON object only: {"Title": "5 Act - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
6. IOODARI 6 RetrospectHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key ioodari-6-retrospect-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 6 of 7 of the IOODARI loop: RETROSPECT. Look back honestly: did the plan serve the intent, or only produce activity? Separate what would be SHIPPED from the VALUE delivered, name what is owed or at risk, and give a one-line verdict with the one or two things to prioritise next. Answer with ONE JSON object only: {"Title": "6 Retrospect - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
7. IOODARI 7 ImproveHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key ioodari-7-improve-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 7 of 7 of the IOODARI loop: IMPROVE. Make the learning permanent: which lesson, rule, checklist item, template or reminder should be kept so the next cycle on a similar node starts ahead? Name where it should live (a note, a list, a knowledge page) and the exact wording. Answer with ONE JSON object only: {"Title": "7 Improve - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
GuardedMake a deck (lean)
Workflow.MakeDeck - site Engineering
Single-phase deck generator - the brief in, a ContentType.SlideDeck out. The reliable single-agent alternative to the fragile 4-phase Workflow.StudioRequest on a slow local model. Fire via POST /agency/workflows/Workflow.MakeDeck/run with the full deck brief as userTask.
Started by
on demand only (MCP / HTTP run)On failure: no fallback seat - the run is recorded in its history only
1. Make a deckHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Daily research scout(Skill.Research)
Reads first: nothing
Writes: ContentType.SlideDeck to {{invokingDepartment}}/SlideDecks
Gate: none
Model: chat-local
To Deterministic:
ResponseSchema; publish gate; row key (OutputKey);
Task (the phase Goal)
You ALWAYS produce the requested slide deck from the brief in the task; if the task carries only a generic trigger, disregard it. Emit a SINGLE ContentType.SlideDeck as a JSON object with EXACTLY these field names (no F. prefix): Title (the deck title), DeckTopic (the subject), DeckAudience (exactly one of: Investor, Customer, Internal, Conference), DeckSlideCount (a number 10-14), DeckOutline (the FULL deck as Markdown - one '# Heading' per slide, 2-4 '-' bullets per slide), DeckExportUrl (empty string). Example shape: {"Title":"Rental-Ops Co-Pilot","DeckTopic":"AI rental ops for Belgian landlords","DeckAudience":"Customer","DeckSlideCount":12,"DeckOutline":"# Title slide\n- one line value prop\n# The problem\n- point\n- point\n# Solution\n- point","DeckExportUrl":""}. Output ONLY the JSON object, no preamble, no analysis. Clarity over decoration; make the problem feel inevitable, the solution obvious, the moat defensible; tie every slide to the brief and use its real numbers.
GuardedModel R&D
Workflow.ModelRnD - site ResearchEnrichment
Started by the radar's Screening -> Assess arc (the Send to R&D button): one analysis phase on the free provider; on failure the arc's FallbackSeat takes the task.
Started by
Transition: Screening -> Assess, fallback claude-codeOn failure: no fallback seat - the run is recorded in its history only
1. Model R&D analysisHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Model R&D analyst(Skill.ModelRnDAnalyst) - Model R&D analyst
Reads first: Tool.FetchKnowledge (1500 ch)
Writes: ContentType.ResearchReport to {{invokingDepartment}}/ResearchReports
Gate: Eval.ModelRnDReport - 9 checks before writing,
0 golden (eval tier)
Model: implicit provider default
To Deterministic:
ResponseSchema; row key (OutputKey); declared model;
Task (the phase Goal)
The task names ONE new LLM release on the radar and carries its fields (Title, SourceUrl, ModelVendor, ContextWindow, PriceInPerMTok, PriceOutPerMTok, ReleasedAt, Body). Assess it for SPICE, an XML-native multi-agent platform. Compare it ONLY with what is in your briefing: the LlmProvider parts we run today (# Live data / query results) and the ModelEvals ledger - never with public leaderboards, whose scores do not transfer to our tasks. NEVER state a price, context window or score for one of our providers that is not written in your briefing - write "not declared" instead; an invented number is worse than none. Compare numbers carefully (262,144 is MORE than 200,000). Think briefly, then output ONLY the final JSON object - no preamble. Emit a SINGLE ContentType.ResearchReport as JSON whose values are all STRINGS (multi-line values use \n line breaks - never a JSON array) with exactly these fields: Id (the literal text rnd- followed by the itemId from the task), Title ("R&D: " + the model name), DeckTopic (the model name), ResearchFindings (markdown with these five sections in order: "## Summary" what it is and what is new; "## Fit for SPICE" which seat, skill or provider slot it could serve, compared with the provider we use there now - price per million tokens and context side by side; "## Risks"; "## Proposal" ONE concrete change, or "No change" with the reason; "## Effort" in hours), ResearchKeyClaims (the sharpest takeaways, one per line; the first line is "Proposal: " + the proposal in one sentence), ResearchCitations (one per line as '[ID]: Title - URL'; the first is the item's SourceUrl), ResearchConfidence (Low, Medium or High - Low when the item carries no price or eval evidence). Example shape: {"Id":"rnd-src-123","Title":"R&D: Acme Fast 1","DeckTopic":"Acme Fast 1","ResearchFindings":"## Summary\n...\n## Fit for SPICE\n...\n## Risks\n...\n## Proposal\n...\n## Effort\n2 hours","ResearchKeyClaims":"Proposal: trial Acme Fast 1 as the cheap chat fallback.\nClaim two","ResearchCitations":"[1]: Acme Fast 1 - https://openrouter.ai/acme/fast-1","ResearchConfidence":"Medium"}. Honesty over enthusiasm.
GuardedPre-mortem
Workflow.PreMortem - site Brainstorm
BRAINSTORM.22: Failure, Causes, Mitigate on one mind-map node - each step a Pending child under it; run it before Propose as project.
Started by
EventReceiver: WorkflowStart ContentType.MindMapNodeOn failure: no fallback seat - the run is recorded in its history only
1. Pre-mortem 1 FailureHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key premortem-1-failure-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 1 of 3 of a PRE-MORTEM on this node: IMAGINE IT FAILED. It is one year from now and this node's plan was carried out and failed badly. Describe the failure concretely, as if it already happened: what went wrong, what it cost, who noticed first. Answer with ONE JSON object only: {"Title": "1 Failure - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
2. Pre-mortem 2 CausesHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key premortem-2-causes-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 2 of 3 of a PRE-MORTEM on this node: WHY IT FAILED. List the most plausible reasons the failure happened, most likely first - each one line, specific to this node (people, time, money, technology, assumptions, outside events). No mitigations yet. Answer with ONE JSON object only: {"Title": "2 Causes - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
3. Pre-mortem 3 MitigateHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: IOODARI method(Skill.Ioodari) - Method coach
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key premortem-3-mitigate-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 3 of 3 of a PRE-MORTEM on this node: PREVENT IT. For the top three causes give one preventive action each and one early-warning sign to watch for, so the failure is caught while it is still cheap. Answer with ONE JSON object only: {"Title": "3 Mitigate - <one-line result, at most 80 characters>", "Body": "<the detail, a few short lines>"}.
GuardedShape the outcome
Workflow.ShapeOutcome - site Brainstorm
BRAINSTORM.28c: a brainstorm ends in an outcome - a form asks which (Project, New functionality, New site), then a wireframe spec in three reviewable steps (requirements, data, solution) as Pending children; approve them, then take the outcome's action on the node.
Started by
EventReceiver: WorkflowStart ContentType.MindMapNodeOn failure: no fallback seat - the run is recorded in its history only
1. Shape the outcome 1 RequirementsHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Shape the outcome(Skill.ShapeOutcome)
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key shape-1-requirements-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 1 of 3 of SHAPE THE OUTCOME (the outcome: {{init.ShapeRoute}}). From the node's subtree and the FORM ANSWERS, write the requirements: the purpose in one sentence, then each user or role with what they need, then numbered user stories (US1, US2, ...) as "As a ROLE, I want GOAL, so that REASON" - only the ones the subtree supports. End with what is out of scope. Answer with ONE JSON object only: {"Title": "Spec 1 Requirements - <how many user stories, at most 80 characters>", "Body": "<purpose, users, user stories, out of scope>"}.
2. Shape the outcome 2 DataHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Shape the outcome(Skill.ShapeOutcome)
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key shape-2-data-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 2 of 3 of SHAPE THE OUTCOME (the outcome: {{init.ShapeRoute}}). Using the requirements from step 1 and the subtree, design the data the SharePoint way: for each list, its name, one line on what it is for, the user stories it serves (US1...), and a Markdown table of its fields (Name, Type: Text, Note, Number, Currency, DateTime, Choice, Lookup, User, Boolean, URL; Required; Choices or the list a Lookup points to). Then its views (name, columns, filter, sort). One list per kind of thing; only the lists the stories need. Answer with ONE JSON object only: {"Title": "Spec 2 Data - <the lists, at most 80 characters>", "Body": "<per list: purpose, stories, field table, views>"}.
3. Shape the outcome 3 SolutionHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Shape the outcome(Skill.ShapeOutcome)
Reads first: nothing
Writes: ContentType.MindMapNode to {{invokingDepartment}}/Ideas, key shape-3-solution-{{itemId}}
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; declared model;
Task (the phase Goal)
This is step 3 of 3 of SHAPE THE OUTCOME (the outcome: {{init.ShapeRoute}}). Using steps 1 and 2, write the solution: the flows (what starts each one, its steps, who approves, the user stories it serves), the reminders and alerts, the pages people open first, then the OPEN QUESTIONS the operator must answer before building. End with the next step for the outcome: Project - approve this spec and use Propose as project on the node; New functionality - file it as a New Feature issue; New site - build the site kit. Answer with ONE JSON object only: {"Title": "Spec 3 Solution - <the flows and open questions, at most 80 characters>", "Body": "<flows, alerts, pages, open questions, next step>"}.
GuardedSolar panel catalog research
Workflow.CatalogResearch.SolarPanel - site ProductCatalog
The catalog research service for Solar panel models (the service catalog's 'Product catalog research'): one research phase on the free provider, filing a ResearchReport on ProductCatalog/ResearchReports. tools/catalog turns an approved report into catalog rows.
Started by
on demand only (MCP / HTTP run)On failure: a task for Research workers
1. Solar panel catalog researchHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Solar panel catalog research(Skill.CatalogResearch.SolarPanel) - Solar panel catalog researcher
Reads first: nothing
Writes: ContentType.ResearchReport to ProductCatalog/ResearchReports
Gate: Eval.CatalogResearch.SolarPanel - 10 checks before writing,
3 golden (eval tier)
Model: implicit provider default
To Deterministic:
ResponseSchema; row key (OutputKey); declared model;
Task (the phase Goal)
Research camper and boat solar panels (rigid, flexible, semi-flexible, portable) for a comparison catalog: every model named in the task, from its manufacturer datasheet first. Prompt version 1.0.0. The task names the models. For EACH model, work through the sources in this order and cite every value (URL, and the page for a PDF): 1. the manufacturer DATASHEET PDF - search for it by brand and model number, read it, do not settle for the shop page; 2. INDEPENDENT TESTS (magazines, labs, testers who bought their own unit) - measured output against the rating, and how they measured; 3. CUSTOMER REVIEWS - rating, scale, number of ratings, and whether the source is independent, a marketplace or vendor-hosted; 4. COMMUNITY (forums, Reddit, owner reports) - pros, cons and failures; 5. OFFERS - shop, price, currency, whether VAT is included, shipping, stock, the date seen. A value you did not see in a source stays EMPTY and goes under "## Not found" - never estimate, never copy a similar model's value. The datasheet rows, one per feature, in this order (ETIM class EC001746 Photovoltaics module release 11, then the extensions): EF012463 MPP power by STC (Wp); EF005094 MPP voltage (V); EF005096 MPP current (A); EF004891 Open circuit voltage (V); EF004859 Short-circuit current (A); EF004896 Power tolerance (%); EF009509 Module efficiency factor (STC) (%); EF004993 Max. system voltage (V); EF009510 Reverse current load (A); EF012467 Temperature coefficient Pmpp (%/K); EF012466 Temperature coefficient Uoc (%/K); EF012465 Temperature coefficient Isc (%/K); EF002393 Operating temperature (degC); EF005443 Cell material; EF008497 Number of cells; EF027462 Solar cell technology; EF018603 Module structure; EF027461 Module design; EF022700 With frame (yes/no); EF021568 Frame colour; EF017059 Cell colour; EF017058 Colour back side; EF012646 Glass with anti-reflection coating (yes/no); EF012619 Suitable for vertical/overhead glazing (yes/no); EF001438 Length (mm); EF000008 Width (mm); EF000125 Thickness (mm); EF000167 Weight (kg); EF005036 With connection cable (yes/no); EF000536 Cable length (mm); EF012464 Number of bypass diodes; BusbarCount Busbar count [Cell layout on the datasheet (e.g. 10BB, 16BB); not an ETIM feature.]; NmotC NMOT (degC) [EN 50380 / IEC 61853 datasheet content (NOCT on older datasheets - say which).]; Certifications Certifications [The datasheet certification line (IEC 61215, IEC 61730, CE, UL 61730).]; DegradationText Degradation [The performance warranty: first-year and yearly loss, and the power guaranteed at 25 years.]; PanelType Mounting form [Platform: how it mounts on a vehicle (Rigid, Flexible, Semi-flexible, Portable).]; BendLimit Bend limit [Flexible panels: the maximum bend as the manufacturer states it (degrees or radius).]; Walkable Walkable (yes/no) [Whether the manufacturer says it may be walked on.]; MechanicalLoad Mechanical load [IEC 61215 static load test, front and back, in Pa.]; JunctionBoxConnector Junction box and connector [Junction box IP rating and the connector type (e.g. IP68, MC4).]. In the reviews and community sources, look for these known failures and report each one you find with its source: Delamination or bubbling of the top layer (flexible, semi-flexible); Hotspots or burnt cells; Junction box or connector failure, water ingress; Output well below the rating in real sun; Cracked cells after bending or walking on it; Frame corrosion or broken glass (rigid). Think briefly, then output ONLY one JSON object - no preamble. Emit a SINGLE ContentType.ResearchReport as JSON whose values are all STRINGS (multi-line values use \n line breaks - never a JSON array) with exactly these fields: Id (the literal text catalog- followed by the first model's name in lowercase with dashes), Title ("Catalog research: " + the models), DeckTopic (the category and models), ResearchFindings (markdown, per model: "## Datasheet" a table | Code | Feature | Value | Unit | Source |, one row per datasheet row above in that order, Value empty when not found; "## Picture" one line: the manufacturer's own image URL of THIS model (http or https, from the maker's site or datasheet), or "not found" - never a picture of another size or model; "## Independent tests" a table | Source | Measured | Rated | Method | URL |; "## Customer reviews" a table | Source | Rating | Scale | Count | Independence | URL | where Independence is Independent test, Third-party customer, Community or Vendor-hosted; "## Community" pros, cons and the failures found, each with its source; "## Offers" a table | Shop | Price | Currency | VAT | Shipping | Stock | Seen on | URL |; "## Not found" the rows you could not source), ResearchKeyClaims (the three facts a buyer most needs, one per line), ResearchCitations (one per line as '[n]: Title - URL'; the datasheet first), ResearchConfidence (Low, Medium or High - Low when no datasheet was found).
GuardedStudio Request
Workflow.StudioRequest - site Studio
V11.22c multi-specialist orchestration. Orchestrator routes -> DeepResearch gathers evidence -> SlideAuthor produces slides -> DocAuthor produces companion document. PriorOutput threads typed XML forward so each downstream specialist sees the immediately-prior step's structured output.
Started by
on demand only (MCP / HTTP run)On failure: no fallback seat - the run is recorded in its history only
1. Route Studio RequestHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Route Studio Request(Skill.RouteStudioRequest) - Studio Orchestrator
Reads first: nothing
Writes: ContentType.StudioRouteDecision to {{invokingDepartment}}/StudioRouteDecisions
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; row key (OutputKey); declared model;
Task (the phase Goal)
Read the userTask. Emit a SINGLE ContentType.StudioRouteDecision as a JSON object with EXACTLY these field names (use these exact keys, no F. prefix, no others): Title (a short title for this request), StudioRequestSummary (your distilled understanding of the userTask, 2-3 sentences), DeckTopic (the subject of the deck), DeckAudience (exactly one of: Investor, Customer, Internal, Conference), DeckSlideCount (a number), StudioSpecialists (comma-separated actor ids). Example shape: {"Title":"Rental-Ops Co-Pilot deck","StudioRequestSummary":"...","DeckTopic":"...","DeckAudience":"Customer","DeckSlideCount":12,"StudioSpecialists":"Actor.SlideAuthor,Actor.DocAuthor"}. Output ONLY that JSON object, no preamble. Never author the deliverable itself - decide WHAT and WHO only.
2. Deep ResearchHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Deep Research(Skill.DeepResearch) - Deep Research
Reads first: nothing
Writes: ContentType.ResearchReport to {{invokingDepartment}}/ResearchReports
Gate: Eval.DeepResearch - 2 checks before writing,
1 golden (eval tier)
Model: implicit provider default
To Deterministic:
ResponseSchema; row key (OutputKey); declared model;
Task (the phase Goal)
Read the PriorOutput StudioRouteDecision and the userTask. Establish the evidence base; if the userTask already contains the facts and figures, use them directly. Emit a SINGLE ContentType.ResearchReport as a JSON object with EXACTLY these field names (use these exact keys, no F. prefix): Title (a short title), DeckTopic (the subject), ResearchFindings (the findings as markdown prose), ResearchKeyClaims (the 3-7 sharpest claims, one per line), ResearchCitations (sources, one per line, may be empty), ResearchConfidence (exactly one of: Low, Medium, High). Example shape: {"Title":"...","DeckTopic":"...","ResearchFindings":"- ...","ResearchKeyClaims":"...","ResearchCitations":"","ResearchConfidence":"Medium"}. Output ONLY that JSON object. Honesty over enthusiasm: Low confidence with thin evidence beats overclaiming.
3. Generate SlidesHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Generate Slides(Skill.GenerateSlides) - Competency Reviewer - Talent Slide Specialist - Slide Author - Media Producer
Reads first: Tool.RenderSlideDeck (1500 ch)Tool.ExportDeckPptx (1500 ch)
Writes: ContentType.SlideDeck to {{invokingDepartment}}/SlideDecks
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; row key (OutputKey); declared model;
Task (the phase Goal)
Read the PriorOutput (StudioRouteDecision + ResearchReport) and the userTask. Produce the slide deck. Emit a SINGLE ContentType.SlideDeck as a JSON object with EXACTLY these field names (use these exact keys, no F. prefix): Title (the deck title), DeckTopic (the subject), DeckAudience (the audience), DeckSlideCount (a number), DeckOutline (the FULL slide outline as Markdown: one '# Heading' per slide, 2-4 '-' bullets per slide), DeckExportUrl (empty string). Example shape: {"Title":"...","DeckTopic":"...","DeckAudience":"Customer","DeckSlideCount":12,"DeckOutline":"# Slide title\n- bullet one\n- bullet two\n# Next slide\n- bullet","DeckExportUrl":""}. Output ONLY that JSON object. Make the problem feel inevitable, the solution obvious, the moat defensible; clarity over decoration; tie every slide to THIS business and use the real numbers from the brief.
4. Generate DocumentHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Generate Document(Skill.GenerateDocument) - Document Author
Reads first: Tool.RenderDocument (1500 ch)Tool.ExportDocumentDocx (1500 ch)
Writes: ContentType.Document to {{invokingDepartment}}/Documents
Gate: none
Model: implicit provider default
To Deterministic:
ResponseSchema; publish gate; row key (OutputKey); declared model;
Task (the phase Goal)
Read the prior steps' outputs (Research findings, slide outline) and the userTask. Produce the companion one-page document. Emit a SINGLE ContentType.Document as a JSON object with EXACTLY these field names (use these exact keys, no F. prefix): Title (the document title), Body (the full document as Markdown - clear sections, the key numbers, never bury the lede). Example shape: {"Title":"Rental-Ops Co-Pilot - one-pager","Body":"## Problem\n...\n## Solution\n...\n## The ask\n..."}. Output ONLY that JSON object.
FreeAdjudicator
Workflow.Adjudicate - site Engineering
The judge agency: a single evaluation phase that scores several candidate answers to one question and ranks them (LLM-as-judge). Fired from the Bakeoff after the agencies answer; verdict only, gated by the agent pipeline's policy + cost cap. Layer-2 measurement - the bio-cognition consensus-referee + the V25.51 domain-counsels seed.
Started by
on demand only (MCP / HTTP run)On failure: no fallback seat - the run is recorded in its history only
1. AdjudicateHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Adjudicate candidate answers(Skill.Adjudicate)
Reads first: nothing
Writes: free text, not validated
Gate: none
Model: implicit provider default
Task (the phase Goal)
The briefing carries one question and several candidate answers, each attributed to an agency. Score each candidate on relevance, specificity, actionability and honesty (0-5 each), sum the scores, rank the candidates, and name the winning agency with a one-line justification. Output the ranked verdict ONLY - do NOT produce your own answer to the question.
FreeAnnual Headcount Review
Workflow.AnnualHeadcountReview - site HR
Q1-first-Monday cadence: roll up the past year's HR activity into a HeadcountReview Note. Single step around Phase.AnnualHeadcountReview.
Started by
Schedule: 0 9 1,2,3,4,5,6,7 1 1 on HROn failure: no fallback seat - the run is recorded in its history only
1. Annual Headcount ReviewHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Annual Headcount Review(Skill.AnnualHeadcountReview) - HR Officer
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Summarise the past year of LeaveRequest activity (volume, approval rate, JobLevel distribution if known) into a Markdown body. Emit a ProvisioningDelta with one AddListItem against ListTemplate.HeadcountReviews; set Field.Year to the year just closed and Field.Body to the rendered summary.
FreeApproval
Workflow.Approval
TPL.17: SharePoint's Approval workflow - routes the item to its Approvers (all at once, or one at a time), each gets a Workflow Task on the site's Tasks list; the first Rejected ends it, Approved by all completes it. The item's Approval column reads In Progress, Approved or Rejected, and on a moderated list its approval status follows (Enable content approval). Associate it with a list or content type by an EventReceiver Event="WorkflowStart".
Started by
EventReceiver: WorkflowStart ContentType.DocumentEventReceiver: WorkflowStart ContentType.DocumentOn failure: no fallback seat - the run is recorded in its history only
1. The phase does not exist.
FreeAward Bid
Workflow.AwardBid - site Procurement
Cadence: pick winners across closed RFQs and emit the award delta.
Started by
Schedule: 0 10 * * 1 on ProcurementOn failure: no fallback seat - the run is recorded in its history only
1. Award BidHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Award Bid(Skill.AwardBid) - Procurement Officer
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: claude-haiku-4-5
Task (the phase Goal)
Read the open Bids in the briefing's '# Live data' block. For each RfqId whose parent BidRequest has RfqStatus=Closed, pick the winning Bid (lowest Amount, ties broken by DeliveryDays). Emit a ProvisioningDelta with: one AddListItem flipping the winning Bid's BidStatus to Awarded; one AddListItem per losing Bid setting BidStatus to Rejected; one AddListItem updating the parent BidRequest with RfqStatus=Awarded + AwardedBidId set to the winning Bid's key.
FreeCollect Feedback
Workflow.CollectFeedback
TPL.18: SharePoint's Collect Feedback workflow - each reviewer gets a Workflow Task and answers with Comments (recorded in Workflow History); no reject, the item's approval status is untouched, the run completes when every reviewer has answered.
Started by
EventReceiver: WorkflowStart ContentType.DocumentEventReceiver: WorkflowStart ContentType.DocumentOn failure: no fallback seat - the run is recorded in its history only
1. The phase does not exist.
FreeContract Expiration Digest
Workflow.ExpirationDigest - site Legal
Weekly cadence: post a Note summarising contracts expiring within 30 days.
Started by
Schedule: 0 9 * * 1 on LegalOn failure: no fallback seat - the run is recorded in its history only
1. Contract expiration digestHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Expiration Digest(Skill.ExpirationDigest) - Procurement Officer
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Summarise the expiring-contract rows in the briefing's '# Live data' block into a Markdown digest. Group by Counterparty; flag AutoRenew vs ManualRenewal vs FixedTerm separately. Emit a ProvisioningDelta with one AddListItem against ListTemplate.Notes; title prefix: "Expiring contracts - YYYY-MM-DD".
FreeContract Intake
Workflow.ContractIntake - site Legal
Per-event auto-tag flow for a freshly filed contract row.
Started by
EventReceiver: ItemAdded ContentType.ContractOn failure: no fallback seat - the run is recorded in its history only
1. Intake ContractHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Intake Contract(Skill.IntakeContract) - Procurement Officer
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Read the fresh Contract row + the Organizations dictionary. Emit a ProvisioningDelta with one AddListItem updating the same row: set Counterparty (matched against Organizations Title), Jurisdiction (term path), EffectiveDate, ExpirationDate, RenewalTerms, and flip ContractStatus from Draft to Active. Don't change Subject or Body.
FreeEnrich Product
Workflow.EnrichProduct - site Procurement
Per-event enrichment for a freshly landed RawProduct row. Single step around Phase.EnrichProduct; emits a delta against the parent department's Products list + flips the raw row's EnrichmentStatus.
Started by
Schedule: 0 8 * * 1 on ProcurementEventReceiver: ItemAdded ContentType.RawProductOn failure: no fallback seat - the run is recorded in its history only
1. Enrich ProductHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Enrich Product(Skill.EnrichProduct) - Procurement Officer
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: claude-haiku-4-5
Task (the phase Goal)
Derive an enriched Product row from the new RawProduct: SKU + Vendor (Lookup) + ProductCategory + PriceUSD + SourceRawId. Emit AddListItem against the Products list with Key="item:product:{rawId}" and OnConflict="FillEmpty" so the write composes with the V8.4 RawProductEnrichmentListener's deterministic floor: any field the listener already populated stays put; only fields the listener left empty get filled by your enrichment. The applier promotes Field.EnrichmentSource from Deterministic to Agent on successful fills. Also emit an UpdateListItem flipping the source RawProduct's EnrichmentStatus to Enriched. Don't author a Product if SKU can't be inferred - leave the raw row at EnrichmentStatus=Failed for human triage.
FreeEscalation digest
Workflow.EscalationDigest - site CustomerSupport
Pulls open High / Critical priority tickets from the audit log and posts an escalation digest Note. Designed to fire on a daily cadence once a scheduler is wired.
Started by
Schedule: 0 9 * * * on CustomerSupportOn failure: no fallback seat - the run is recorded in its history only
1. Escalation digestHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Write Documentation(Skill.WriteDocumentation) - Engineering Lead - Demo Knowledge Librarian
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Identify the open High / Critical priority tickets that need attention now and produce a ProvisioningDelta with one AddListItem against the Notes list. Title prefix: "Escalation digest - YYYY-MM-DD".
FreeGenesis: build a division
Workflow.GenesisBuildDivision - site Genesis
The boss-level pipeline (Agency Swarm's Genesis flow, SPICE-native): design -> create parts -> create crew -> assemble one gated AddSiteBlueprint delta -> operator approves -> division born. Suggest-don't-seize; nothing lands without the operator's yes at Tool.ApprovalGate.
Started by
EventReceiver: ItemUpdated ContentType.IncomingRequestOn failure: no fallback seat - the run is recorded in its history only
1. Genesis: designHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Genesis: design a division(Skill.GenesisDesign)
Reads first: Tool.FetchKnowledge (1500 ch)
Writes: free text, not validated
Gate: none
Model: implicit provider default
Task (the phase Goal)
GOV.4 guard: first read the desk's requests (fetched below). If the newest request's IncomingRequestTarget is not Agency.Genesis or its IncomingRequestStatus is not Dispatched, answer exactly "Nothing to design: the newest request is not dispatched to Genesis." and stop. Otherwise that request IS the operator's mission. Read KB.GenesisManifesto. From the operator's mission, name the new division and propose its structure: at most 2-3 skill-role seats plus an orchestrator, the Phase pipeline (the crafting recipes), the comms flows, and which existing parts (Skills/Phases/ContentTypes/SiteTemplate) to reuse vs author new. Emit the proposal as an IdeaBrief/Spec-shaped summary the next phase (PartSmith) can build from. Do NOT author parts or blueprints yet - this phase only designs.
2. Genesis: create partsHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Genesis: create the parts(Skill.GenesisCreateParts)
Reads first: nothing
Writes: free text, not validated
Gate: none
Model: implicit provider default
Task (the phase Goal)
For the design handed over, list the Skills (Capabilities + RequiresTool), Phases (Goal + UsesSkill) and a Workflow (Steps in order; build/test steps delegate to the Engineering crew via Workflow.ImplementThenValidate) the new division needs. Reuse existing parts where they fit; namespace every new id to avoid collisions. Hand this parts list to the next phase (CrewSmith) to assemble.
3. Genesis: create crewHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Genesis: create the crew(Skill.GenesisCreateCrew)
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Assemble the confirmed design into ONE valid ProvisioningDelta the operator can approve and the maker can apply verbatim. Emit a single AddSiteBlueprint op (with Name, DeptCode, Theme, and Template="SiteTemplate.MissionDivision") whose Feature children reference ONLY crew Features that ALREADY EXIST in the part library (for example Feature.AgencyBasics, which staffs a Mission Division crew). Composable-first: build the new division from existing parts. If a seat genuinely needs a brand-new skill, emit a real AddSkill op (stable dotted Id like Skill.X, with Capabilities) rather than binding a missing one. A new ActorProfile persona has NO runtime op - do not invent one; instead record what is needed as an XML comment in the delta for the operator or the forge to add later. Stay strictly inside the schema's closed op vocabulary (AddSiteBlueprint, AddSkill, AddKnowledgeArticle, AddSkillBinding, AddListItem, ActivateFeature); never emit NewActorProfile, RouteTo, or any element the schema does not define. Do NOT emit a routing element - the system carries the whole delta to Tool.ApprovalGate on its own; suggest, do not seize; nothing is created until the operator says yes.
FreeHandle new Issue
Workflow.HandleNewIssue - site ProjectTracker
Triage flow for a freshly opened Issue: judge Priority and pick an owner. Single phase, but named so the resolver can pick it up by setting and the audit log records the M.O., not just the underlying skill.
Started by
EventReceiver: ItemAdded ContentType.IssueOn failure: no fallback seat - the run is recorded in its history only
1. Triage IssueHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Assign Issue(Skill.AssignIssue) - Alice (Project Manager)
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Decide the right Priority and AssignedTo for the new Issue and produce a ProvisioningDelta with one AddListItem (or update) that records the verdict. Don't change the Issue's Title or Description.
FreeImplement then Validate
Workflow.ImplementThenValidate - site Engineering
Default M.O. for blueprint authoring: produce a delta, then have it validated. Validation pinned to Manager regardless of who originated.
Started by
on demand only (MCP / HTTP run)On failure: no fallback seat - the run is recorded in its history only
1. ImplementHarness: one call - the engine reads first, the model answers once
Role / skill: Author SAF Blueprint(Skill.AuthorBlueprint) - Engineering Lead
Reads first: Tool.WebSearch (1500 ch)Tool.ArXiv (1500 ch)
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Produce a valid ProvisioningDelta XML document that, when applied, satisfies the request. Reference existing parts where possible; only create new parts when no existing one fits.
2. ValidateHarness: one call - the engine reads first, the model answers once - as Manager
Role / skill: Review Architecture(Skill.ReviewArchitecture) - Compliance Officer - Engineering Lead
Reads first: nothing
Writes: free text, not validated
Gate: none
Model: implicit provider default
Task (the phase Goal)
Confirm the proposed delta is schema-valid, policy-compliant, and free of obvious conflicts (duplicate Ids, missing references). Report findings.
FreeMonthly Close
Workflow.MonthlyClose - site Finance
End-of-month rollup of operational activity + LLM spend, posted as a Note. Single step around Phase.MonthlyClose.
Started by
Schedule: 0 18 1 * * on FinanceOn failure: no fallback seat - the run is recorded in its history only
1. Monthly CloseHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Monthly Close(Skill.MonthlyClose) - Finance Controller
Reads first: Tool.CostRollup (1500 ch)
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Produce a ProvisioningDelta with one AddListItem against ListTemplate.Notes whose body has two sections: the past month's operational highlights (from the audit log), and the LLM spend rollup (from Tool.CostRollup pre-loaded into # Live data). Title format: "Monthly close - YYYY-MM".
FreePlanning meeting
Workflow.PlanningMeeting - site Engineering
The captain's planning meeting: a deliberation phase that turns an approved priority into a sequenced plan of work for the crew. Fired from the Bridge; proposal only, gated by the agent pipeline. The owed V25.50 Phase 2 control.
Started by
on demand only (MCP / HTTP run)On failure: no fallback seat - the run is recorded in its history only
1. Planning meetingHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Plan the work(Skill.PlanningDeliberation)
Reads first: nothing
Writes: free text, not validated
Gate: none
Model: implicit provider default
Task (the phase Goal)
Given the captain's agenda (an approved priority), break it into a short ordered list of work units - each with the seat/department that would own it and any dependency - so the crew can pick it up. Do NOT execute - the sequenced plan is the whole output, for the operator to approve.
FreePlatform self-review
Workflow.SelfReview - site Engineering
Reads consolidation KAs + denials and proposes a ProvisioningDelta with structural improvements. Output is a delta; apply remains explicit so a human gates the meta-mutation.
Started by
Schedule: 0 4 1,2,3,4,5,6,7 * 0 on EngineeringOn failure: no fallback seat - the run is recorded in its history only
1. Self reviewHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Review Architecture(Skill.ReviewArchitecture) - Compliance Officer - Engineering Lead
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Identify recurring failure patterns and missed-coverage areas in the platform's own activity. Propose a ProvisioningDelta with one or more of: AddSkillBinding (cover a gap), AddSkill (a missing capability), AddKnowledgeArticle (a meta-observation worth retaining). Cite the consolidation KAs that motivated each proposal in the Rationale.
FreeQuarterly Report
Workflow.QuarterlyReport - site Finance
Quarter-end rollup with longer horizon and exec-facing tone. Single step around Phase.QuarterlyReport.
Started by
Schedule: 0 9 1 1,4,7,10 * on FinanceOn failure: no fallback seat - the run is recorded in its history only
1. Quarterly ReportHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Quarterly Report(Skill.QuarterlyReport) - Finance Controller
Reads first: Tool.CostRollup (1500 ch)
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Produce a ProvisioningDelta with one AddListItem against ListTemplate.Notes whose body covers the closing quarter's operational themes + LLM spend trajectory. Title format: "Quarterly report - YYYY Q[1-4]".
FreeReceive and dispatch
Workflow.ReceiveAndDispatch - site Reception
The Reception pipeline: a New IncomingRequest is routed to the best-fit agency, or flagged NeedsAgency and handed to Genesis to build one (gated); a routed request becomes a Workflow Task for that agency and is Resolved when the task is completed. Fired per request by ER.OnIncomingRequestAdded.
Started by
EventReceiver: ItemAdded ContentType.IncomingRequestOn failure: a task for claude-code
1. Dispatch a requestHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Dispatch a request(Skill.DispatchRequest)
Reads first: Tool.FetchKnowledge (1500 ch)
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Read the new IncomingRequest. Route it by the SERVICE CATALOG first (Live data: Query.ServiceCatalog): if the request names a ServiceRef, or clearly asks for one of the catalog's services, that service's ServiceOwner is the target and its ServiceFulfilment is what runs it - say which in the delta's Rationale. Only when no service fits, determine the competency it needs and match it against the existing agencies' declared seats. If the brief lacks the decision it supports or its scope, route it anyway and name what is missing in the Rationale. Emit a ProvisioningDelta: set IncomingRequestTarget to the service owner or best-fit agency + IncomingRequestStatus=Dispatched, and hand the request to that agency over the bus. If nothing fits, set IncomingRequestStatus=NeedsAgency and raise a proposal to the Genesis crew (Workflow.GenesisBuildDivision) to build a suitable division - which the operator approves. Do NOT perform the requested work yourself; you only route.
2. The phase does not exist.
3. The phase does not exist.
FreeReview Procedure
Workflow.ReviewProcedure - site Compliance
When a new Procedure lands, route it to its Owner for review by emitting an ApprovalRequest pointing at the procedure. Same shape as Workflow.RouteLeaveRequest: single phase, agent-driven, emits a delta against the parent department's ApprovalRequests list.
Started by
EventReceiver: ItemAdded ContentType.ProcedureOn failure: no fallback seat - the run is recorded in its history only
1. Review ProcedureHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Review Procedure(Skill.ReviewProcedure) - Compliance Officer - Engineering Lead
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
File an ApprovalRequest for the Procedure: Subject="Review procedure: {procedure subject}", QuorumRequired=1, Owner=the procedure's AssignedTo. Emit one AddListItem against ApprovalRequests; do not modify the procedure row itself.
FreeRoute incoming support ticket
Workflow.RouteIncomingTicket - site CustomerSupport
Triage flow for a new support ticket: judge Priority, pick a queue owner from the support team. Reuses Phase.TriageIssue (a support ticket is structurally an Issue).
Started by
EventReceiver: ItemAdded ContentType.IssueEventReceiver: ItemAdded ContentType.IssueOn failure: no fallback seat - the run is recorded in its history only
1. Triage IssueHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Assign Issue(Skill.AssignIssue) - Alice (Project Manager)
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Decide the right Priority and AssignedTo for the new Issue and produce a ProvisioningDelta with one AddListItem (or update) that records the verdict. Don't change the Issue's Title or Description.
FreeRoute Leave Request
Workflow.RouteLeaveRequest - site HR
Per-event routing for a freshly submitted LeaveRequest: resolve the manager-of-record, flip LeaveStatus to AwaitingManager. Single step around Phase.RouteLeaveRequest.
Started by
EventReceiver: ItemAdded ContentType.LeaveRequestOn failure: no fallback seat - the run is recorded in its history only
1. Route Leave RequestHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Route Leave Request(Skill.RouteLeaveRequest) - HR Officer
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Read the new LeaveRequest, look up the requester's manager from the People directory, and emit a ProvisioningDelta with one AddListItem against ListTemplate.LeaveRequests that sets Field.Manager + flips Field.LeaveStatus to AwaitingManager. Don't change Subject, dates, or LeaveType.
FreeSteering meeting
Workflow.SteeringMeeting - site Engineering
The captain's steering committee: a deliberation phase that reviews trajectory + spend and proposes ranked roadmap priorities. Fired from the Bridge ('call a meeting'); advice only, gated by the agent pipeline's policy + per-actor cost cap. The owed V25.50 Phase 2 control.
Started by
on demand only (MCP / HTTP run)On failure: no fallback seat - the run is recorded in its history only
1. Steering meetingHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Steer the roadmap(Skill.SteeringDeliberation)
Reads first: nothing
Writes: free text, not validated
Gate: none
Model: implicit provider default
Task (the phase Goal)
Given the captain's agenda, review where the city stands (the milestone ladder, what's been made, the token spend per process), name the current bottleneck, and propose a short ranked list of next priorities with a one-line justification each. Do NOT act - the ranked proposal is the whole output, for the operator to approve.
FreeThree-state
Workflow.ThreeState
TPL.18: SharePoint's Three-state workflow - tracks an item through three states of a Choice column: a task to the item's AssignedTo, then the column moves to the middle state, a review task, then the final state. Parameters are the association's Data (SharePoint's AssociationData): StateField, Middle, Final; the item starts in the initial state.
Started by
EventReceiver: ItemAdded ContentType.IssueOn failure: no fallback seat - the run is recorded in its history only
1. The phase does not exist.
2. The phase does not exist.
3. The phase does not exist.
4. The phase does not exist.
FreeVenture Engine
Workflow.VentureEngine - site VentureEngine
The money-engine pipeline: leads -> validate -> idea -> functional analysis -> technical analysis -> project plan -> BUILD (delegated to the Engineering crew via Workflow.ImplementThenValidate) -> test. Seeded here with the first phase (Scout leads); the crew extends the remaining analysis/plan phases (start with what works, let them make others). Every outward/costly step passes Tool.ApprovalGate.
Started by
on demand only (MCP / HTTP run)On failure: no fallback seat - the run is recorded in its history only
1. Scout leadsHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Scout leads(Skill.ScoutLeads)
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Given a target domain, gather real demand signals (people asking for / already building X), cluster + rank them into candidate venture leads, and emit a ProvisioningDelta with one AddListItem per lead against the division's Digest list (Key="item:lead:{slug}"), each carrying the evidence + source links + a strength score. Present the ranked shortlist for the operator to choose; do NOT commit to building anything.
FreeWatch the world
Workflow.WatchSignals - site VentureEngine
The watch-the-world pipeline: scout a SignalKind -> rank -> file typed MarketSignal rows, gated. Seeded with the scout phase; the operator acts on the filed signals (or the U6 CrossModuleRule routes Price/Lead signals onto CRM Opportunities). Reuses the VentureEngine division.
Started by
Schedule: 0 7 * * * on VentureEngineOn failure: no fallback seat - the run is recorded in its history only
1. Scout market signalsHarness: one call - the engine reads first, the model answers once - as Lead
Role / skill: Scout market signals(Skill.ScoutSignals)
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Given a SignalKind (Price | Lead | Intel) and a target domain, scout real observations, rank them, and emit a ProvisioningDelta with one AddListItem per signal against the division's Digest list (ContentType="ContentType.MarketSignal", Key="item:signal:{slug}"), each carrying Kind + Subject + Source + Value + Delta + Evidence + ObservedAt, and PartySku when the signal maps to a known BusinessPartner. Do NOT act on them - filing the ranked signals is the whole job.
FreeWatchdog review
Workflow.WatchdogReview - site Engineering
The shadow self-monitoring pipeline: one deliberation phase that reads U1's deterministic health signals and posts an advisory verdict to the Hub inbox. Fired by Schedule.WatchdogReview (unattended) or on demand. Shadow mode - read+notify only, no acting tool anywhere in the phase, so it closes the unattended-monitoring loop without any autonomy (promotion to gated remediation is U4).
Started by
Schedule: */15 * * * * on EngineeringOn failure: no fallback seat - the run is recorded in its history only
1. Health reviewHarness: tool loop, up to 6 turns - the model picks its tools - as Member
Role / skill: Review system health(Skill.HealthReview) - Watchdog (reliability watcher)
Reads first: Tool.FetchKnowledge (1500 ch)
Writes: free text to Inbox
Gate: none
Model: chat-local
Task (the phase Goal)
You are the shadow Watchdog. Do these steps with your tools, then stop: (1) call Tool.FetchKnowledge with expression=ListView('Health', site='Hub') to read the latest deterministic health heartbeat; (2) call Tool.FetchKnowledge with expression=ListView('Issues', site='Hub') to read the open fault Issues; (3) from that evidence decide whether the system is HEALTHY, DEGRADED, or DOWN and list any NEW fault not seen before with its evidence. Then produce your verdict as your FINAL ANSWER: the very first line MUST be exactly 'Watchdog: {state}' (e.g. 'Watchdog: Healthy'), followed by the severity, any new faults with evidence, and a single PROPOSED remediation clearly marked as a suggestion. The system delivers your final answer to the operator's inbox AUTOMATICALLY - you do NOT have, and must NOT narrate, any notify/send tool; your only tool is read (Tool.FetchKnowledge). Do NOT take any remediation action - the proposal is the whole output. If the heartbeat is fresh and Healthy with no open faults, give a brief 'Watchdog: Healthy' verdict. TOOL-CALL DISCIPLINE: invoke Tool.FetchKnowledge ONLY as a real function call with its expression argument filled in - NEVER describe or narrate a tool call in text (a described call does not execute). ANSWER DISCIPLINE: your very last message MUST be the verdict as plain answer text, leading with the 'Watchdog: {state}' line, AFTER any reasoning - a reply that contains only reasoning (no final verdict text) lands nothing and fails the review.
FreeWeekly memory consolidation
Workflow.WeeklyMemoryConsolidation - site Engineering
Sleep-cycle equivalent: compacts the week's audit activity into KnowledgeArticles so future agent briefings benefit from the platform's own history. Single step around Phase.ConsolidateMemory.
Started by
Schedule: 0 3 * * 0 on EngineeringOn failure: no fallback seat - the run is recorded in its history only
1. Consolidate memoryHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Write Documentation(Skill.WriteDocumentation) - Engineering Lead - Demo Knowledge Librarian
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Produce a ProvisioningDelta with one or more AddKnowledgeArticle ops summarising recurring patterns in the week's audit log: which phases ran most, which policies denied, which workflows fired and to what outcome. Title each KA "Weekly observations - YYYY-MM-DD"; tag with "consolidation" and the topic.
FreeWeekly status report
Workflow.WeeklyStatusReport - site ProjectTracker
Pulls last week's Issue activity from the audit log and posts a status Markdown note to the Notes list.
Started by
Schedule: 0 9 * * 1 on ProjectTrackerOn failure: no fallback seat - the run is recorded in its history only
1. Write weekly status reportHarness: one call - the engine reads first, the model answers once - as Member
Role / skill: Write Documentation(Skill.WriteDocumentation) - Engineering Lead - Demo Knowledge Librarian
Reads first: nothing
Writes: Schemas/SAF-ProvisioningDelta.xsd
Gate: none
Model: implicit provider default
Task (the phase Goal)
Summarise what changed this week (issues opened, assigned, resolved) into a short Markdown post and emit a ProvisioningDelta containing one AddListItem against the Notes list with that body. Title format: "Status report - YYYY-MM-DD".