-
Notifications
You must be signed in to change notification settings - Fork 267
feat(skills): add outcome hypothesis authoring #2680
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Katrien De Graeve (katriendg)
merged 44 commits into
microsoft:main
from
zeier:feat/outcome-hypothesis-skill
Aug 20, 2026
+1,339
−32
Merged
Changes from 40 commits
Commits
Show all changes
44 commits
Select commit
Hold shift + click to select a range
ca759f0
feat(skills): add outcome hypothesis authoring
zeier 73121e9
feat(skills): merge outcome hypothesis readiness updates
zeier cbf9ee4
Merge remote-tracking branch 'upstream/main' into feat/outcome-hypoth…
zeier 8f671b7
feat(skills): add distinct outcome assessment mode
zeier c583946
fix(skills): reconcile outcome indicator count
zeier aa523a0
Merge branch 'zeier-fix-outcome-indicator-count' into feat/outcome-hy…
zeier 41523d1
feat(skills): define outcome hypothesis persistence
zeier 2357248
Merge branch 'zeier-finding-3-persistence' into feat/outcome-hypothes…
zeier 69022a0
feat(skills): constrain individual-level outcome indicators
zeier ec0fb4e
Merge branch 'zeier-finding-7-privacy-aggregation' into feat/outcome-…
zeier 4e72625
fix(evals): tighten outcome hypothesis graders
zeier a94f876
Merge branch 'zeier-finding-5-eval-precision' into feat/outcome-hypot…
zeier 9a8cc54
fix(skills): move OH.0 before outcome drafting
zeier 50b2f22
Merge branch 'zeier-fix-oh0-gate-sequence' into feat/outcome-hypothes…
zeier 637acec
fix(skills): frame investability as evidence readiness
zeier 74add84
Merge branch 'zeier-finding-9-advisory-framing' into feat/outcome-hyp…
zeier e8fc42d
feat(skills): route material AI outcomes to RAI planning
zeier ac1ec14
Merge branch 'zeier-finding-8-rai-routing' into feat/outcome-hypothes…
zeier 73222d2
feat(skills): add affected-group trade-off prompts
zeier 8a9f19f
fix(skills): require indicator source and owner
zeier 188fcf5
Merge branch 'zeier-finding-6-affected-groups' into feat/outcome-hypo…
zeier 830171f
fix(skills): clarify investigate delivery behavior
zeier dd1f165
Merge branch 'zeier-finding-12-indicator-owners' into feat/outcome-hy…
zeier 9bdd75a
Merge branch 'zeier-investigate-delivery-wording' into feat/outcome-h…
zeier d0fb87c
fix(skills): connect beneficiary correction to affected groups
zeier f010544
feat(skills): derive outcome-hypothesis confidence
zeier ee7cef7
Merge commit 'f010544e1f1e1e023551f699da6c4a4cc67bfea1' into feat/out…
zeier ae17a35
feat(skills): add outcome hypothesis BRD handoff
zeier d9d05f1
Merge commit 'ae17a3534fc52ee2c6978ff5d9ec09e26a1ef689' into feat/out…
zeier 9cbc287
fix(skills): harden outcome hypothesis contracts
zeier 4d96164
chore: merge upstream main
zeier d6a81ce
fix(skills): correct outcome hypothesis license
zeier b4b83e3
Merge remote-tracking branch 'origin/main' into zeier-pr-2680-plugin-…
zeier 94d73ac
fix(plugins): align outcome hypothesis with aggregate manifest
zeier 14b8f7e
refactor(skills): centralize outcome hypothesis caution
zeier bb273d8
fix(skills): close outcome hypothesis status lifecycle
zeier bade85c
Merge commit 'bb273d8649bb40fb7f1cc933299fec93a36f236e' into feat/out…
zeier 6e4935d
Merge branch 'zeier-pr-2680-plugin-refactor' into feat/outcome-hypoth…
zeier 1819349
fix(skills): close final outcome hypothesis findings
zeier c335aae
fix(skills): satisfy spell and table checks
zeier 49252dc
Merge branch 'main' into feat/outcome-hypothesis-skill
zeier 31bb0ec
chore(build): merge origin/main into outcome hypothesis skill
zeier fb316cb
chore(build): merge remote outcome hypothesis updates
zeier b037e72
Merge branch 'main' into feat/outcome-hypothesis-skill
zeier File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
203 changes: 203 additions & 0 deletions
203
.github/skills/project-planning/outcome-hypothesis/SKILL.md
Large diffs are not rendered by default.
Oops, something went wrong.
191 changes: 191 additions & 0 deletions
191
...ills/project-planning/outcome-hypothesis/references/readiness-and-validation.md
Large diffs are not rendered by default.
Oops, something went wrong.
128 changes: 128 additions & 0 deletions
128
.github/skills/project-planning/outcome-hypothesis/templates/outcome-hypothesis.md
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,128 @@ | ||
| --- | ||
| title: "Outcome Hypothesis: <Title>" | ||
| description: "Evidence-grounded outcome hypothesis for <Project or initiative>." | ||
| author: "<Name or Author TBD>" | ||
| ms.date: 2026-08-18 | ||
| ms.topic: concept | ||
| --- | ||
|
|
||
| <!-- Replace this marker with the complete `Outcome-Hypothesis` CAUTION from | ||
| ../../../../instructions/shared/disclaimer-language.instructions.md verbatim. | ||
| Do not retain this marker in the rendered document. --> | ||
|
|
||
| `ms.date` is template metadata. Replace it with the actual ISO 8601 render date and, before saving, the actual persistence or update date. | ||
|
|
||
| **Project / Initiative:** `<Project or initiative>` | ||
| **Status:** `<Draft | Provisional | Committed>` | ||
| **Confidence:** `<Low | Medium | High>` | ||
|
|
||
| The status lifecycle is closed: `Draft`, `Provisional`, and `Committed`. Status is human-owned. Persist a Ready hypothesis as `Draft` and a Provisional hypothesis as `Provisional`. Only explicit human approval may update an existing persisted, eligible artifact to `Committed`; do not set `Committed` automatically. | ||
|
|
||
| ## Background | ||
|
|
||
| Write one to three concise paragraphs that connect: | ||
|
|
||
| * The strategic priority and why this outcome matters now | ||
| * The specific problem and its current operational or business cost | ||
| * The beneficiary's role, segment, scale, geography, channel, and before/after workflow | ||
| * The capability or workflow intervention at a level engineers can scope and sponsors can endorse | ||
|
|
||
| Describe an MVP or proof of concept only as a delivery vehicle, never as the outcome. | ||
|
|
||
| ## Expected Outcomes | ||
|
|
||
| Use the initiative-level form below. Keep each clause in a separate paragraph and bold only the clause lead. | ||
|
|
||
| **Due to** `<business context or pain point>`, | ||
|
|
||
| **We believe that** `<capability or workflow intervention>` | ||
|
|
||
| **Will result in** `<measurable business outcome>`, | ||
|
|
||
| **Observable by** `<specific role, segment, or business unit>`, | ||
|
|
||
| **Within** `<specific window anchored to an event or date>`, | ||
|
|
||
| **Validated by:** | ||
|
|
||
| * **Leading indicator 1:** `<predictive metric with numeric target and units>` | ||
| * **Leading indicator 2:** `<optional predictive metric with numeric target and units>` | ||
| * **Lagging indicator:** `<outcome metric with numeric target and units>` | ||
|
|
||
| For a tightly scoped pilot sub-hypothesis, this one-sentence form is permitted: | ||
|
|
||
| > If we `<intervention>` for `<beneficiary>`, then `<KPI>` will improve from `<baseline>` to `<target>` within `<timeframe>`, as measured by `<method>`. | ||
|
|
||
| The targets in either Expected Outcomes form are authoritative. Each indicator-table Target value must exactly match its corresponding statement target. | ||
|
|
||
| ## Validation & Measurement | ||
|
|
||
| ### Indicator detail | ||
|
|
||
| | Type | Indicator | Definition | Baseline | Target | Source | Owner | | ||
| |---------|---------------------|----------------------------|-------------------------------------------------------------------------------|------------------------------------|---------------------------------------|----------------------------------------| | ||
| | Leading | `<Named indicator>` | `<Operational definition>` | `<Current value and measurement period, or explicit baselining prerequisite>` | `<Exact Expected Outcomes target>` | `<System or dashboard, or dated gap>` | `<Named person or role, or dated gap>` | | ||
| | Lagging | `<Named indicator>` | `<Operational definition>` | `<Current value and measurement period, or explicit baselining prerequisite>` | `<Exact Expected Outcomes target>` | `<System or dashboard, or dated gap>` | `<Named person or role, or dated gap>` | | ||
|
|
||
| Include at least one leading and one lagging indicator. Limit the document to three indicators total. | ||
|
|
||
| ### Outcome chain | ||
|
|
||
| * **Business outcome:** `<beneficiary result>` | ||
| * **Lagging indicator:** `<metric that confirms the outcome>` | ||
| * **Leading indicators:** `<metrics that predict progress>` | ||
| * **Technical intervention:** `<specific capability or workflow change>` | ||
|
|
||
| ### Measurement plan | ||
|
|
||
| * Measurement granularity: `<Aggregate | Cohort | Individual>` | ||
| * Individual-level necessity and proportionality: `<Why aggregate or cohort-level measurement cannot answer the hypothesis, or Not applicable>` | ||
| * Privacy Planner result: `<Completed result or evidence reference when individual-level measurement uses personal or sensitive data, or Not applicable>` | ||
| * Measurement method and source: `<system, query, or dashboard>` | ||
| * Measurement owner: `<name or explicit owner resolution gap>` | ||
| * Attribution approach: `<control, pre/post, counterfactual, or matched cohort>` | ||
| * Leading checkpoints: `<dates or intervals and reviewer>` | ||
| * Lagging checkpoints: `<dates or intervals and reviewer>` | ||
|
|
||
| Default to aggregate or cohort-level indicators. Complete the individual-level justification only when that granularity is necessary and proportionate. If an individual-level measure uses personal or sensitive data, stop before drafting and invoke `Privacy Planner`; create or resume the draft only after its completed result is available. | ||
|
|
||
| ## Assumptions & Risks | ||
|
|
||
| ### Assumptions | ||
|
|
||
| | # | Assumption | Evidence / Status | If false, impact | | ||
| |----|-------------------------|------------------------------------------------|------------------| | ||
| | A1 | `<Load-bearing belief>` | `<Untested / Partially supported / Evidenced>` | `<What breaks>` | | ||
| | A2 | `<Load-bearing belief>` | `<Untested / Partially supported / Evidenced>` | `<What breaks>` | | ||
| | A3 | `<Load-bearing belief>` | `<Untested / Partially supported / Evidenced>` | `<What breaks>` | | ||
|
|
||
| Add up to four more assumptions when needed. | ||
|
|
||
| ### Affected groups and trade-offs | ||
|
|
||
| * Other affected groups or paths: `<adjacent teams, excluded segments, and people relying on fallback or accessibility paths>` | ||
| * Transferred impacts: `<privacy, accessibility, workload, or operational impacts, plus mitigation or an explicit evidence gap>` | ||
|
|
||
| ### Risks and falsification criteria | ||
|
|
||
| * Hypothesis is disproved when: `<numeric lagging-indicator threshold within the timeframe>` | ||
| * Potential confounds: `<false-positive and false-negative conditions>` | ||
| * Exit or pivot criteria: `<decision threshold and action>` | ||
|
|
||
| ## Open Questions & Resolution Gaps | ||
|
WilliamBerryiii marked this conversation as resolved.
|
||
|
|
||
| Map every Amber and Red D1-D7 pillar. Keep the table even when no gaps remain. | ||
|
|
||
| | ID | Gap | Why it matters | Owner | Target date (ISO 8601) | | ||
| |----|------------------|---------------------------------------------|------------------------------|----------------------------| | ||
| | Q1 | `<Specific gap>` | `<How it weakens or blocks the hypothesis>` | `<Named owner or Owner TBD>` | `<YYYY-MM-DD or Date TBD>` | | ||
|
|
||
| Use unique `Q1`-style IDs for source gaps. When no gaps remain, retain the table with no body rows; do not add a `None` row. Every populated target date must use ISO 8601 `YYYY-MM-DD`. | ||
|
|
||
| For a Provisional hypothesis: | ||
|
|
||
| * Set Status to `Provisional` and Confidence to `Low`. | ||
| * Complete Background, Expected Outcomes, and Open Questions & Resolution Gaps from available evidence. | ||
| * Insert this marker in any unsupported section: | ||
|
|
||
| > **TBD**: This section is blocked on `<specific scorecard gap>`. Owner: `<name or Owner TBD>`. Target resolution: `<date or Date TBD>`. | ||
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.