{
  "$schema": "folio-library-document/v1",
  "id": "assured-ai-github-programme-requirements-v042",
  "title": "Assured AI: requirements for the programme GitHub project",
  "variant": "text",
  "pages": null,
  "tocSource": "headings",
  "tocMethod": null,
  "toc": [],
  "sections": [
    {
      "id": "s001-assured-ai-requirements-for-the-programme-github",
      "number": null,
      "title": "Assured AI: requirements for the programme GitHub project",
      "level": 1,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 130,
      "summary": null,
      "keywords": [],
      "extract": "Build specification for an AI agent Document control; Detail Purpose; Requirements for an AI agent to set up one shared, organisation-level GitHub Project for the WHO Assured AI project (Gates Foundation grant INV-108130), linked to the workstream projects, with a small restricted repository for sensitive material Version; 0.4.2 draft, 20 October 2026. Replaces v0.4.1. Changes in section 0 Status; Approved for a",
      "extractCut": true
    },
    {
      "id": "s002-0-what-changed-from-v0-4-1",
      "number": null,
      "title": "0. What changed from v0.4.1",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 289,
      "summary": null,
      "keywords": [],
      "extract": "From the PM & Architecture Integration's decisions of 20 October 2026 on litlfred/folio-assistant#2605: #; Change; Sections 1; WS5 has no repository or project of its own. WS5 Governance and stewardship is led by the PM & Architecture Integration and managed in the programme project. WS5 features and tasks live in aai-programme; 1, 1.1, 4, 5.1 2; New aai-platform repository for Platform: a cross-cutting technical",
      "extractCut": true
    },
    {
      "id": "s003-1-what-the-build-must-achieve",
      "number": null,
      "title": "1. What the build must achieve",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 233,
      "summary": null,
      "keywords": [],
      "extract": "Workstream leads run their own delivery in their own projects. Everyone involved in the programme, including partners and Gates Foundation contacts, sees one shared programme picture: what is planned, when, how healthy delivery is, what depends on what, and what is waiting for WHO review. Only genuinely sensitive material is kept back, in a small restricted repository. The same issue is never copied to make any of",
      "extractCut": true
    },
    {
      "id": "s004-1-1-terms-used-in-this-document",
      "number": null,
      "title": "1.1 Terms used in this document",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 382,
      "summary": null,
      "keywords": [],
      "extract": "Term; Meaning PM & Architecture Integration; The programme manager role for the project. Referred to as \"the PM\" Technical Integration Lead; The person who confirms that technical components are ready to integrate and validates them (DP-05) Workstream (WS1 to WS5); The five delivery streams of the project, each with its own lead. WS5 Governance and stewardship is led by the PM & Architecture Integration and has no",
      "extractCut": true
    },
    {
      "id": "s005-2-design-principles",
      "number": null,
      "title": "2. Design principles",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 301,
      "summary": null,
      "keywords": [],
      "extract": "ID; Principle DP-01; Create once, show many times. One issue can appear in several projects. Never clone an issue to report its status somewhere else. DP-02; Workstream leads own their delivery. The agent creates programme epics and the workstream template. It does not create features or stories in workstream repositories. DP-03; Programme work is not sprint work. Sprints are managed inside the workstream projects.",
      "extractCut": true
    },
    {
      "id": "s006-3-decisions-needed-before-the-build",
      "number": null,
      "title": "3. Decisions needed before the build",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 899,
      "summary": null,
      "keywords": [],
      "extract": "The agent may carry out step 1 of section 13 (pre-flight) at any time. It must not configure or create anything from step 2 onward until every decision relevant to that step is confirmed. Each decision has a recommended default. ID; Decision; Recommended default; Why it matters BD-01; GitHub organisation; Decided: the existing World Health Organization organisation, shared with other WHO teams. Login:",
      "extractCut": true
    },
    {
      "id": "s007-4-structure",
      "number": null,
      "title": "4. Structure",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 271,
      "summary": null,
      "keywords": [],
      "extract": "GitHub organisation: WorldHealthOrganization │ ├── repo aai-programme Shared │ Epics, milestones, research questions, dependencies (D-numbers), │ decisions (DEC-numbers), assumptions, workstream directory, │ automation scripts │ ├── repo aai-pm Restricted (named WHO staff only); no project │ Sensitive notes only (section 6), each linked from the shared issue it relates to │ ├── repo aai-ws1 … aai-ws4, aai-platform │",
      "extractCut": true
    },
    {
      "id": "s008-5-work-item-taxonomy",
      "number": null,
      "title": "5. Work item taxonomy",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 5,
      "summary": null,
      "keywords": [],
      "extract": null,
      "extractCut": false
    },
    {
      "id": "s009-5-1-issue-types",
      "number": null,
      "title": "5.1 Issue types",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 271,
      "summary": null,
      "keywords": [],
      "extract": "Shared organisation rule. The World Health Organization organisation is shared with other WHO teams. Every organisation issue field and every new issue type created for this project is prefixed AAI, for example AAI Workstream or AAI Decision, so it cannot be confused with or collide with another team's. Existing generic issue types (such as Epic, Feature or Task) may be reused if the owners agree. Fields are pinned",
      "extractCut": true
    },
    {
      "id": "s010-5-2-hierarchy",
      "number": null,
      "title": "5.2 Hierarchy",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 117,
      "summary": null,
      "keywords": [],
      "extract": "Sub-issues represent work breakdown only: Epic, then Feature, then Story or Spike. Research questions are not parents of epics. An item links to research questions through the rq: labels, which list every question it contributes to, including its primary one. The Primary research question field records the main question only, for grouping. The research question issue holds the question, its sub-questions, the",
      "extractCut": true
    },
    {
      "id": "s011-5-3-fields-shown-on-each-issue-type",
      "number": null,
      "title": "5.3 Fields shown on each issue type",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 164,
      "summary": null,
      "keywords": [],
      "extract": "Organisation issue fields must be pinned to issue types to appear on the issue form. GitHub allows up to 10 pinned fields per issue type. Pin only these. Fields not pinned to a type can still be set from the project views. Issue type; Pinned fields Epic; Workstream, Programme status, Delivery health, Pipeline stage, Integration readiness, Gates output, Primary research question, Start date, Target date, Backlog ref",
      "extractCut": true
    },
    {
      "id": "s012-6-information-classification",
      "number": null,
      "title": "6. Information classification",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 340,
      "summary": null,
      "keywords": [],
      "extract": "Class; Meaning; Where it may appear Shared; Fine for every partner and Gates Foundation contact to read; Everything in aai-programme, the workstream repositories and the programme project Restricted; Named WHO staff only; aai-pm only Restricted material is limited to: internal deliberations and draft WHO positions not yet agreed escalation notes contractual, funding or personnel matters sensitive security, legal or",
      "extractCut": true
    },
    {
      "id": "s013-7-fields",
      "number": null,
      "title": "7. Fields",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 3,
      "summary": null,
      "keywords": [],
      "extract": null,
      "extractCut": false
    },
    {
      "id": "s014-7-1-organisation-issue-fields",
      "number": null,
      "title": "7.1 Organisation issue fields",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 558,
      "summary": null,
      "keywords": [],
      "extract": "Shared values. Each one is set once on the issue and shows the same value in every project. Field; Type; Options or format Workstream; Single select; WS1 Knowledge graph, WS2 Authoring, WS3 Evaluation, WS4 Localization, WS5 Governance and stewardship, Platform, Cross-workstream Programme status; Single select; Not started, In progress, In review, Done, Cancelled Delivery health; Single select; On track, At risk,",
      "extractCut": true
    },
    {
      "id": "s015-7-2-project-fields",
      "number": null,
      "title": "7.2 Project fields",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 22,
      "summary": null,
      "keywords": [],
      "extract": "The programme project needs no project-only fields. Do not add project fields that duplicate the section 7.1 fields.",
      "extractCut": false
    },
    {
      "id": "s016-7-3-labels",
      "number": null,
      "title": "7.3 Labels",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 174,
      "summary": null,
      "keywords": [],
      "extract": "Create these in every repository listed in section 4, except aai-pm. Workstream leads should keep them unchanged. Label; Meaning rq:R1 to rq:R7; Every research question the item contributes to, including the primary one also recorded in the Primary research question field. The labels are the complete record; the field is the main question only route:control, route:0, route:a, route:b; Which comparison routes the",
      "extractCut": true
    },
    {
      "id": "s017-7-4-fallback-if-issue-fields-are-unavailable",
      "number": null,
      "title": "7.4 Fallback if issue fields are unavailable",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 68,
      "summary": null,
      "keywords": [],
      "extract": "If BD-05 or BD-06 cannot be met: 1. Create the section 7.1 fields as project fields in the programme project, with identical names and options. 2. Set values for workstream items in the programme project, not in the workstream projects. Workstream projects keep only their own fields. 3. Record this in the build report. Do not mix the two approaches.",
      "extractCut": false
    },
    {
      "id": "s018-8-views-and-metrics",
      "number": null,
      "title": "8. Views and metrics",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 5,
      "summary": null,
      "keywords": [],
      "extract": null,
      "extractCut": false
    },
    {
      "id": "s019-8-1-assured-ai-programme-views",
      "number": null,
      "title": "8.1 Assured AI Programme views",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 666,
      "summary": null,
      "keywords": [],
      "extract": "Each view lists its layout, which items it shows, how they are grouped and sorted, and the columns to display. ID; View; Layout; Items; Group and sort; Columns V1; Master programme; Table; Epics; Group by Workstream; sort by Start date; Title, Programme status, Delivery health, Pipeline stage, Start date, Target date, Gates output, Primary research question, sub-issue progress V2; Roadmap; Roadmap; Epics and",
      "extractCut": true
    },
    {
      "id": "s020-8-2-metrics",
      "number": null,
      "title": "8.2 Metrics",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 145,
      "summary": null,
      "keywords": [],
      "extract": "Use the project's built-in Insights charts for these. Where a chart cannot be built natively, record that in the build report rather than building a workaround, except for M6. ID; Measure; Built from M1; Share of epics On track, At risk and Blocked; Delivery health, epics only M2; Blocked items by workstream; Delivery health = Blocked, grouped by Workstream M3; At-risk or blocked dependencies; Dependency issues with",
      "extractCut": true
    },
    {
      "id": "s021-8-3-assured-ai-workstream-template",
      "number": null,
      "title": "8.3 Assured AI Workstream Template",
      "level": 3,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 109,
      "summary": null,
      "keywords": [],
      "extract": "Create this as an organisation project template. It contains: the issue fields from section 7.1, shown as columns a Sprint iteration field (two weeks) three views: Sprint board (current sprint, grouped by built-in Status), Backlog (table of all open items), and Roadmap The template may reuse the views and iteration setup of project 110 (Backlog, Board, Current iteration, Roadmap) by copying it without its draft",
      "extractCut": true
    },
    {
      "id": "s022-9-dependencies",
      "number": null,
      "title": "9. Dependencies",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 202,
      "summary": null,
      "keywords": [],
      "extract": "DEP-01. Ordinary technical dependencies use GitHub's native \"blocked by\" and \"blocking\" relationships between the issues concerned. Workstream teams create these themselves. DEP-02. A dependency becomes a D-number issue in aai-programme if it is programme-significant: it crosses workstreams or partners and needs a deadline, negotiation, escalation or an assessment of consequences. DEP-03. Each D-number issue links",
      "extractCut": true
    },
    {
      "id": "s023-10-linking-to-workstream-projects",
      "number": null,
      "title": "10. Linking to workstream projects",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 245,
      "summary": null,
      "keywords": [],
      "extract": "ID; Requirement LINK-01; Create a pinned issue in aai-programme titled \"Workstream directory\". For each workstream it lists the lead, the repository and the project URL. Leave entries blank until leads supply them. LINK-02; The programme project README links to the directory issue and to the Roadmap view (V2). Do not add a separate static roadmap or Gantt chart to the README; V2 is the roadmap, kept current from the",
      "extractCut": true
    },
    {
      "id": "s024-11-automation",
      "number": null,
      "title": "11. Automation",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 674,
      "summary": null,
      "keywords": [],
      "extract": "ID; Requirement AUTO-01; Auto-add to the programme project: aai-programme issues of type Epic, Milestone, Research question, Dependency, Decision or Assumption, and workstream issues (including WS5 items in aai-programme) labelled thin-slice, sprint-demo, blocked or at-risk. Other WS5 items stay off the board and still roll up into their epics through sub-issues. The pilot confirms that the auto-add filter can",
      "extractCut": true
    },
    {
      "id": "s025-12-pilot-build",
      "number": null,
      "title": "12. Pilot build",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 468,
      "summary": null,
      "keywords": [],
      "extract": "Before any bulk import, the agent builds and tests this small set. Use representative Assured AI work items that reflect genuine planned activities, each clearly marked as a pilot. Do not create artificial dependencies between unrelated technical tasks, and do not move or change existing operational work (for example the project 110 items) to test the configuration. After the pilot passes, the project 110 items are",
      "extractCut": true
    },
    {
      "id": "s026-13-build-sequence",
      "number": null,
      "title": "13. Build sequence",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 236,
      "summary": null,
      "keywords": [],
      "extract": "1. Pre-flight. Confirm the section 3 decisions are recorded. Inspect existing issue types, issue fields, organisation issue-field headroom, project field counts, projects, teams, repository policies, SSO/EMU constraints and permissions in the organisation. Reuse compatible organisation configuration and do not create anything that duplicates something already there. 2. Organisation setup. An organisation owner",
      "extractCut": true
    },
    {
      "id": "s027-14-inputs-the-pm-will-provide",
      "number": null,
      "title": "14. Inputs the PM will provide",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 176,
      "summary": null,
      "keywords": [],
      "extract": "Input; Used for Epics import CSV, with columns for title, epic code, workstream, start date, target date, Gates outputs, research questions and routes. Each workstream lead reviews their workstream's epics before the bulk import; Epics, and the dates that drive the Roadmap view (V2) Gates outputs list with output months; Milestone issues and Gates output options Research questions R1 to R7, with sub-questions;",
      "extractCut": true
    },
    {
      "id": "s028-15-acceptance-criteria",
      "number": null,
      "title": "15. Acceptance criteria",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 425,
      "summary": null,
      "keywords": [],
      "extract": "ID; Criterion AC-01; The programme project and the template exist in the agreed organisation, with the agreed access for partners, Gates Foundation contacts and WHO staff AC-02; Every view in section 8.1 exists and shows the intended items AC-03; The section 7.1 fields are organisation issue fields, and no project field duplicates them (unless the section 7.4 fallback was used) AC-04; Every epic from the CSV appears",
      "extractCut": true
    },
    {
      "id": "s029-16-build-report",
      "number": null,
      "title": "16. Build report",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 90,
      "summary": null,
      "keywords": [],
      "extract": "The agent hands back a short report covering: the access model used for partners and for Gates Foundation contacts (members or outside collaborators) what was created, what existing organisation configuration was reused, the organisation issue-field headroom and each project's total field count after the build the pass or fail result for each pilot test and acceptance criterion any fallback used, and why permissions",
      "extractCut": true
    },
    {
      "id": "s030-17-open-points-to-be-confirmed-by-the-pm",
      "number": null,
      "title": "17. Open points to be confirmed by the PM",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 167,
      "summary": null,
      "keywords": [],
      "extract": "The start date of the first sprint (S0), used for the Sprint iteration field in the workstream template. Project 110's iteration dates may inform it once checked against the Assured AI programme calendar. The accountable Platform lead, confirmed with Ritika and the relevant technical colleagues, before aai-platform access is assigned. Which activities belong to Platform and which to WS1 or the other technical",
      "extractCut": true
    },
    {
      "id": "s031-18-out-of-scope",
      "number": null,
      "title": "18. Out of scope",
      "level": 2,
      "pageStart": null,
      "pageEnd": null,
      "labelStart": null,
      "labelEnd": null,
      "words": 68,
      "summary": null,
      "keywords": [],
      "extract": "Workstream backlogs, and any views specific to one workstream. A separate private PM project. A separate WS5 repository or project. A partner contribution or partner commitments view. Probability and impact scoring. Importing the PM's existing decision log or the project asset inventory. Making any project or repository public. Changing organisation-wide GitHub security or access policies.",
      "extractCut": false
    }
  ],
  "checks": {},
  "withheld": false,
  "links": {
    "repo": "litlfred/aai-programme",
    "branch": "main",
    "dir": "library/assured-ai-github-programme-requirements-v042"
  }
}
