Skip to content

feat(agents): align RAI planner with guide, remove scoring, improve UX#1287

Draft
WilliamBerryiii wants to merge 13 commits intomainfrom
feat/rai-planner-guide-alignment
Draft

feat(agents): align RAI planner with guide, remove scoring, improve UX#1287
WilliamBerryiii wants to merge 13 commits intomainfrom
feat/rai-planner-guide-alignment

Conversation

@WilliamBerryiii
Copy link
Copy Markdown
Member

@WilliamBerryiii WilliamBerryiii commented Apr 3, 2026

Description

Implements Issue #1281: RAI Planner Updates — Guide Alignment, Scoring Removal, and UX Improvements.

The RAI Planner agent expands from a 5-phase to a 6-phase workflow, replacing numeric scoring with qualitative assessment, aligning terminology and structure with the Microsoft Responsible AI Impact Assessment Guide, and introducing artifact signing infrastructure. Additionally, this PR establishes a config-driven AI artifact validation pipeline for enforcing footer and disclaimer standards across instruction files. 46 files changed across agent definitions, instructions, prompts, documentation, plugins, collection metadata, config, CI workflows, and scripts.

Key Changes

  • Phase Restructuring (5→6): New Phase 2 (Sensitive Uses Assessment) inserts binary trigger screening with T1/T2/T3 triggers, a restricted-use gate, and depth tier assignment (Basic/Standard/Comprehensive). Subsequent phases renumbered.
  • Scoring Model Replacement: Removed 0–100 weighted composite scoring and likelihood-impact matrices. Replaced with concern levels (Low/Moderate/High), a review quality checklist, maturity indicators, and audience adaptation profiles. Renamed rai-scorecard.mdrai-review-summary.md.
  • Standard Alignment: Replaced "Microsoft RAI Standard v2" references with the "Microsoft Responsible AI Impact Assessment Guide" as the primary principle framework, restructuring from a Goal/Requirement/Tool hierarchy to Guide Sections and Goals by Principle.
  • Security Model Updates: Adopted AI STRIDE extensions with eight AI element types and five trust boundaries. Unified threat ID format to T-RAI-{NNN}.
  • Artifact Signing: Added Sign-RaiArtifacts.ps1 for SHA-256 manifest generation with optional Sigstore cosign keyless signing, backed by 262-line Pester test suite. Installed cosign v3.0.5 in devcontainer.
  • Prompt UX: Added output preferences collection, facilitative language, and expanded context pre-scan to capture coaching and entry-mode prompts.
  • Documentation Accuracy: Updated all 9 RAI documentation pages to reflect phase restructuring, scoring removal, renamed artifacts, and updated terminology.
  • AI Artifact Validation Infrastructure: Added centralized YAML config files (.github/config/disclaimers.yml, .github/config/footer-with-review.yml) defining footer text, human review checkboxes, and tiered artifact classification with scope-aware glob patterns. Created Validate-AIArtifacts.ps1 (612 lines) for CI enforcement, a JSON Schema for config validation, a reusable GitHub Actions workflow (ai-artifact-validation.yml), and a 20-test Pester suite. Wired into pr-validation.yml and the lint:all npm chain.
  • Footer and Disclaimer Alignment: Added two-tier footer/disclaimer system to RAI planning and security instruction files, and corresponding documentation pages, per reviewer feedback.

Related Issue(s)

Closes #1281

Type of Change

Select all that apply:

Code & Documentation:

  • Bug fix (non-breaking change fixing an issue)
  • New feature (non-breaking change adding functionality)
  • Breaking change (fix or feature causing existing functionality to change)
  • Documentation update

Infrastructure & Configuration:

  • GitHub Actions workflow
  • Linting configuration (markdown, PowerShell, etc.)
  • Security configuration
  • DevContainer configuration
  • Dependency update

AI Artifacts:

  • Reviewed contribution with prompt-builder agent and addressed all feedback
  • Copilot instructions (.github/instructions/*.instructions.md)
  • Copilot prompt (.github/prompts/*.prompt.md)
  • Copilot agent (.github/agents/*.agent.md)
  • Copilot skill (.github/skills/*/SKILL.md)

> Note for AI Artifact Contributors:
>
> * Agents: Research, indexing/referencing other project (using standard VS Code GitHub Copilot/MCP tools), planning, and general implementation agents likely already exist. Review .github/agents/ before creating new ones.
> * Skills: Must include both bash and PowerShell scripts. See Skills.
> * Model Versions: Only contributions targeting the latest Anthropic and OpenAI models will be accepted. Older model versions (e.g., GPT-3.5, Claude 3) will be rejected.
> * See Agents Not Accepted and Model Version Requirements.

Other:

  • Script/automation (.ps1, .sh, .py)
  • Other (please describe):

Sample Prompts (for AI Artifact Contributions)

User Request:

Invoke RAI Planner in the VS Code chat pane and use one of three entry prompts:

  • /rai-capture — Start a new conversational RAI assessment from scratch
  • /rai-plan-from-prd — Generate an RAI plan from an existing PRD
  • /rai-plan-from-security-plan — Generate an RAI plan from an existing security plan

Execution Flow:

  1. Phase 1 (Discovery): Collects system context, stakeholders, AI/ML components, and user output preferences.
  2. Phase 2 (Sensitive Uses): Screens T1–T3 binary triggers, evaluates restricted-use gates, assigns depth tier (Basic/Standard/Comprehensive).
  3. Phase 3 (Standards Mapping): Aligns with the Microsoft Responsible AI Impact Assessment Guide and NIST AI RMF subcategories.
  4. Phase 4 (Security Model): Runs AI STRIDE analysis with eight element types and five trust boundaries; emits T-RAI-{NNN} threats.
  5. Phase 5 (Impact Assessment): Evaluates concern levels (Low/Moderate/High) across fairness, reliability, privacy, inclusiveness, transparency, and accountability.
  6. Phase 6 (Backlog Handoff): Produces rai-review-summary.md, dual-format backlog (ADO + GitHub), and optional signed artifact manifest.

Output Artifacts:

  • .copilot-tracking/rai-plans/{session}/state.json — Session state with phase progression
  • .copilot-tracking/rai-plans/{session}/rai-review-summary.md — Qualitative review summary (replaces scored scorecard)
  • .copilot-tracking/rai-plans/{session}/rai-backlog-*.md — Dual-format work item backlog
  • .copilot-tracking/rai-plans/{session}/rai-manifest.json — SHA-256 artifact manifest (optional signing)

Success Indicators:

  • Phase 2 trigger screening produces clear pass/flag verdicts for each T1–T3 trigger
  • Concern levels replace numeric scores throughout (no 0–100 values)
  • All file references use rai-review-summary.md instead of rai-scorecard.md
  • Threat IDs follow T-RAI-{NNN} format consistently
  • Depth tier assignment drives subsequent phase depth

Testing

Validation Status
Sandbox run 002 (full 6-phase RAI assessment) ✅ Pass
Plugin regeneration (npm run plugin:generate) — 14 plugins ✅ Pass (0 lint errors)
Documentation accuracy audit — 21 replacements across 7 doc files ✅ Pass
Frontmatter validation sweep ✅ Pass
Document name consistency sweep ✅ Pass
Standards reference audit — 26 replacements across 8 files ✅ Pass
Terminology grep sweeps (orphaned old references) ✅ Pass (no orphans found)
AI artifact validation — Pester tests (20 tests) ✅ Pass
AI artifact validation — npm run lint:ai-artifacts ✅ Pass (3 files with legitimate advisory warnings)

> Note: Manual testing was performed along side automated validation and sandbox evaluation as the primary verification methods.

GHCP Artifact Maturity

> [!WARNING]
> This PR includes experimental GHCP artifacts that may have breaking changes.

File Type Maturity Notes
.github/agents/rai-planning/rai-planner.agent.md Agent ⚠️ experimental Pre-release only
.github/prompts/rai-planning/rai-capture.prompt.md Prompt ⚠️ experimental Pre-release only
.github/prompts/rai-planning/rai-plan-from-prd.prompt.md Prompt ⚠️ experimental Pre-release only
.github/prompts/rai-planning/rai-plan-from-security-plan.prompt.md Prompt ⚠️ experimental Pre-release only
.github/instructions/rai-planning/rai-identity.instructions.md Instruction ⚠️ experimental Pre-release only
.github/instructions/rai-planning/rai-standards.instructions.md Instruction ⚠️ experimental Pre-release only
.github/instructions/rai-planning/rai-security-model.instructions.md Instruction ⚠️ experimental Pre-release only
.github/instructions/rai-planning/rai-impact-assessment.instructions.md Instruction ⚠️ experimental Pre-release only
.github/instructions/rai-planning/rai-backlog-handoff.instructions.md Instruction ⚠️ experimental Pre-release only
.github/instructions/rai-planning/rai-capture-coaching.instructions.md Instruction ⚠️ experimental Pre-release only
.github/instructions/rai-planning/rai-sensitive-uses-triggers.instructions.md Instruction ⚠️ experimental Pre-release only

GHCP Maturity Acknowledgment

  • I acknowledge this PR includes non-stable GHCP artifacts
  • Non-stable artifacts are intentional for this change

Checklist

Required Checks

  • Documentation is updated (if applicable)
  • Files follow existing naming conventions
  • Changes are backwards compatible (if applicable) (N/A — experimental GHCP artifacts; phase restructuring is intentional)
  • Tests added for new functionality (if applicable)

AI Artifact Contributions

  • Used /prompt-analyze to review contribution
  • Addressed all feedback from prompt-builder review
  • Verified contribution follows common standards and type-specific requirements

Required Automated Checks

The following validation commands must pass before merging:

  • Markdown linting: npm run lint:md
  • Spell checking: npm run spell-check
  • Frontmatter validation: npm run lint:frontmatter
  • Skill structure validation: npm run validate:skills
  • Link validation: npm run lint:md-links
  • PowerShell analysis: npm run lint:ps
  • AI artifact validation: npm run lint:ai-artifacts

> Repository template used: .github/PULL_REQUEST_TEMPLATE.md

- restructure Phase 2 into binary trigger assessment with T1/T2/T3 tiers
- replace likelihood-impact scoring with restricted-use gate framework
- adopt AI STRIDE extensions with eight AI element types in Phase 4
- unify threat IDs to T-RAI-{NNN} format across all phases
- add rai-sensitive-uses-triggers.instructions.md for Phase 2 depth
- update collection manifests, plugins, and documentation accuracy
- add Sign-RaiArtifacts.ps1 signing script with Pester tests

Closes #1281

🚀 - Generated by Copilot
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

Scorecard details
PackageVersionScoreDetails
actions/actions/checkout de0fac2e4500dabe0009e67214ff5f5447ce83dd 🟢 6
Details
CheckScoreReason
Maintained⚠️ 23 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2
Code-Review🟢 10all changesets reviewed
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Packaging⚠️ -1packaging workflow not detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
Security-Policy🟢 9security policy file detected
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
SAST🟢 8SAST tool detected but not run on all commits
actions/actions/upload-artifact bbbca2ddaa5d8feaa63e36b76fdaad77386f024f 🟢 5.7
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 54 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 5
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Packaging⚠️ -1packaging workflow not detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 10SAST tool is run on all commits
pip/atheris 3.0.0 🟢 5.9
Details
CheckScoreReason
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 7Found 23/30 approved changesets -- score normalized to 7
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Packaging⚠️ -1packaging workflow not detected
SAST⚠️ 0no SAST tool detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing🟢 10project is fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Security-Policy🟢 10security policy file detected
pip/colorama 0.4.6 UnknownUnknown
pip/coverage 7.13.4 UnknownUnknown
pip/iniconfig 2.3.0 UnknownUnknown
pip/packaging 26.0 UnknownUnknown
pip/pluggy 1.6.0 UnknownUnknown
pip/pygments 2.20.0 UnknownUnknown
pip/pytest 9.0.2 UnknownUnknown
pip/pytest-cov 7.0.0 UnknownUnknown
pip/pytest-mock 3.15.1 UnknownUnknown
pip/ruff 0.15.6 UnknownUnknown
pip/tomli 2.4.0 UnknownUnknown
pip/atheris 3.0.0 🟢 5.9
Details
CheckScoreReason
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 7Found 23/30 approved changesets -- score normalized to 7
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Packaging⚠️ -1packaging workflow not detected
SAST⚠️ 0no SAST tool detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing🟢 10project is fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Security-Policy🟢 10security policy file detected
pip/colorama 0.4.6 UnknownUnknown
pip/coverage 7.13.4 UnknownUnknown
pip/iniconfig 2.3.0 UnknownUnknown
pip/packaging 26.0 UnknownUnknown
pip/pluggy 1.6.0 UnknownUnknown
pip/pygments 2.20.0 UnknownUnknown
pip/pytest 9.0.2 UnknownUnknown
pip/pytest-cov 7.0.0 UnknownUnknown
pip/pytest-mock 3.15.1 UnknownUnknown
pip/ruff 0.15.6 UnknownUnknown
pip/tomli 2.4.0 UnknownUnknown
npm/basic-ftp 5.2.1 🟢 5.3
Details
CheckScoreReason
Code-Review⚠️ 0Found 1/30 approved changesets -- score normalized to 0
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 78 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 7
Binary-Artifacts🟢 10no binaries found in the repo
Security-Policy🟢 10security policy file detected
Token-Permissions🟢 9detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
npm/basic-ftp 5.2.1 🟢 5.3
Details
CheckScoreReason
Code-Review⚠️ 0Found 1/30 approved changesets -- score normalized to 0
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Maintained🟢 78 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 7
Binary-Artifacts🟢 10no binaries found in the repo
Security-Policy🟢 10security policy file detected
Token-Permissions🟢 9detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST⚠️ 0SAST tool is not run on all commits -- score normalized to 0
pip/atheris 3.0.0 🟢 5.9
Details
CheckScoreReason
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 7Found 23/30 approved changesets -- score normalized to 7
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Packaging⚠️ -1packaging workflow not detected
SAST⚠️ 0no SAST tool detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing🟢 10project is fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Security-Policy🟢 10security policy file detected
pip/colorama 0.4.6 UnknownUnknown
pip/coverage 7.13.4 UnknownUnknown
pip/iniconfig 2.3.0 UnknownUnknown
pip/packaging 26.0 UnknownUnknown
pip/pluggy 1.6.0 UnknownUnknown
pip/pygments 2.20.0 UnknownUnknown
pip/pytest 9.0.2 UnknownUnknown
pip/pytest-cov 7.0.0 UnknownUnknown
pip/pytest-mock 3.15.1 UnknownUnknown
pip/ruff 0.15.6 UnknownUnknown
pip/tomli 2.4.0 UnknownUnknown
pip/atheris 3.0.0 🟢 5.9
Details
CheckScoreReason
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 7Found 23/30 approved changesets -- score normalized to 7
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Packaging⚠️ -1packaging workflow not detected
SAST⚠️ 0no SAST tool detected
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing🟢 10project is fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Security-Policy🟢 10security policy file detected
pip/colorama 0.4.6 UnknownUnknown
pip/coverage 7.13.4 UnknownUnknown
pip/iniconfig 2.3.0 UnknownUnknown
pip/packaging 26.0 UnknownUnknown
pip/pluggy 1.6.0 UnknownUnknown
pip/pygments 2.20.0 UnknownUnknown
pip/pytest 9.0.2 UnknownUnknown
pip/pytest-cov 7.0.0 UnknownUnknown
pip/pytest-mock 3.15.1 UnknownUnknown
pip/ruff 0.15.6 UnknownUnknown
pip/tomli 2.4.0 UnknownUnknown

Scanned Files

  • .github/workflows/ai-artifact-validation.yml
  • package-lock.json
  • plugins/gitlab/skills/gitlab/gitlab/uv.lock
  • plugins/hve-core-all/skills/gitlab/gitlab/uv.lock
  • plugins/hve-core-all/skills/jira/jira/uv.lock
  • plugins/jira/skills/jira/jira/uv.lock

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 3, 2026

Codecov Report

❌ Patch coverage is 57.89474% with 104 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.88%. Comparing base (a18ab1a) to head (472ffb4).
⚠️ Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
scripts/linting/Validate-AIArtifacts.ps1 47.42% 102 Missing ⚠️
scripts/security/Sign-RaiArtifacts.ps1 96.22% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1287      +/-   ##
==========================================
- Coverage   87.63%   86.88%   -0.76%     
==========================================
  Files          61       63       +2     
  Lines        9328     9575     +247     
==========================================
+ Hits         8175     8319     +144     
- Misses       1153     1256     +103     
Flag Coverage Δ
pester 84.19% <57.89%> (-1.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
scripts/security/Sign-RaiArtifacts.ps1 96.22% <96.22%> (ø)
scripts/linting/Validate-AIArtifacts.ps1 47.42% <47.42%> (ø)

... and 2 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown
Collaborator

@raymond-nassar raymond-nassar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First impressions on this draft PR:

The three-part disclaimer formulation exceeds the baseline requirement: (1) covers legal, compliance, and ethics; (2) frames all outputs as suggestions; (3) establishes organizational policy precedence.

Replacing numerical scores with qualitative concern levels and maturity indicators strengthens the disclaimer posture. Qualitative assessments naturally invite human judgment.

Look forward to seeing this in action.

Copy link
Copy Markdown
Collaborator

@raymond-nassar raymond-nassar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Files affected: All files containing the current disclaimer blockquote:

.github/agents/rai-planning/rai-planner.agent.md
.github/instructions/rai-planning/rai-identity.instructions.md (Session Start Display, Exit Point Reminder, State Creation)
.github/prompts/rai-planning/rai-capture.prompt.md
.github/prompts/rai-planning/rai-plan-from-prd.prompt.md
.github/prompts/rai-planning/rai-plan-from-security-plan.prompt.md

Current text:

This tool provides structured prompts and frameworks to support responsible AI planning. It is not a substitute for professional legal, compliance, or ethics review. All outputs are suggestions for human evaluation. Organizational RAI policies and applicable regulations take precedence.

Required text:

This agent is an assistive tool only. It does not provide legal, regulatory, or compliance advice and does not replace Responsible AI review boards, ethics committees, legal counsel, compliance teams, or other qualified human reviewers. The output consists of suggested actions and considerations to support a user's own internal review and decision‑making. All RAI assessments, sensitive use screenings, security models, and mitigation recommendations generated by this tool must be independently reviewed and validated by appropriate legal and compliance reviewers before use. Outputs from this tool do not constitute legal approval, compliance certification, or regulatory sign‑off.

Rationale:

The current disclaimer is too general and does not adequately protect against misinterpretation. The replacement version:

  • Enumerates specific professional roles the tool does not replace (RAI review boards, ethics committees, legal counsel, compliance teams)
  • Names the specific output types requiring validation (RAI assessments, sensitive use screenings, security models, mitigation recommendations)
  • Explicitly excludes certification and sign-off — preventing misinterpretation as approval
  • States a mandatory validation requirement ("must be independently reviewed and validated") rather than a softer suggestion
  • Addresses regulatory advice directly ("does not provide legal, regulatory, or compliance advice")
  • This change should be applied everywhere the current disclaimer blockquote appears, including the Session Start Display and Exit Point Reminder sections in rai-identity.instructions.md which govern when the disclaimer is shown to users.

- update disclaimer in rai-planner agent, three RAI prompt files, and rai-identity instructions
- regenerate plugin outputs and reformat doc tables

⚖️ - Generated by Copilot
@WilliamBerryiii
Copy link
Copy Markdown
Member Author

Files affected: All files containing the current disclaimer blockquote:

.github/agents/rai-planning/rai-planner.agent.md
.github/instructions/rai-planning/rai-identity.instructions.md (Session Start Display, Exit Point Reminder, State Creation)
.github/prompts/rai-planning/rai-capture.prompt.md
.github/prompts/rai-planning/rai-plan-from-prd.prompt.md
.github/prompts/rai-planning/rai-plan-from-security-plan.prompt.md

Current text:

This tool provides structured prompts and frameworks to support responsible AI planning. It is not a substitute for professional legal, compliance, or ethics review. All outputs are suggestions for human evaluation. Organizational RAI policies and applicable regulations take precedence.

Required text:

This agent is an assistive tool only. It does not provide legal, regulatory, or compliance advice and does not replace Responsible AI review boards, ethics committees, legal counsel, compliance teams, or other qualified human reviewers. The output consists of suggested actions and considerations to support a user's own internal review and decision‑making. All RAI assessments, sensitive use screenings, security models, and mitigation recommendations generated by this tool must be independently reviewed and validated by appropriate legal and compliance reviewers before use. Outputs from this tool do not constitute legal approval, compliance certification, or regulatory sign‑off.

Rationale:

The current disclaimer is too general and does not adequately protect against misinterpretation. The replacement version:

  • Enumerates specific professional roles the tool does not replace (RAI review boards, ethics committees, legal counsel, compliance teams)
  • Names the specific output types requiring validation (RAI assessments, sensitive use screenings, security models, mitigation recommendations)
  • Explicitly excludes certification and sign-off — preventing misinterpretation as approval
  • States a mandatory validation requirement ("must be independently reviewed and validated") rather than a softer suggestion
  • Addresses regulatory advice directly ("does not provide legal, regulatory, or compliance advice")
  • This change should be applied everywhere the current disclaimer blockquote appears, including the Session Start Display and Exit Point Reminder sections in rai-identity.instructions.md which govern when the disclaimer is shown to users.

This has been resolved.

@raymond-nassar
Copy link
Copy Markdown
Collaborator

The disclaimer text was strengthened across all existing locations in 21c2ee7 . However, the original gap I flagged remains: the Handoff Summary template (the stakeholder-facing deliverable generated in Phase 6 via rai-backlog-handoff.instructions.md) still does not include the disclaimer blockquote.

Given that the new verbatim text explicitly states "Outputs from this tool do not constitute legal approval, compliance certification, or regulatory sign‑off", the handoff document is arguably the most critical place for this disclaimer to appear, since it's the artifact most likely to be shared outside the immediate user session with review boards, legal, or leadership.

Suggested change: add between the handoff header metadata and the Work Item Summary.

@WilliamBerryiii WilliamBerryiii requested a review from mspuckit April 3, 2026 17:00
@WilliamBerryiii
Copy link
Copy Markdown
Member Author

The disclaimer text was strengthened across all existing locations in 21c2ee7 . However, the original gap I flagged remains: the Handoff Summary template (the stakeholder-facing deliverable generated in Phase 6 via rai-backlog-handoff.instructions.md) still does not include the disclaimer blockquote.

Given that the new verbatim text explicitly states "Outputs from this tool do not constitute legal approval, compliance certification, or regulatory sign‑off", the handoff document is arguably the most critical place for this disclaimer to appear, since it's the artifact most likely to be shared outside the immediate user session with review boards, legal, or leadership.

Suggested change: add between the handoff header metadata and the Work Item Summary.

Agree and I am addressing this now; but I am still trying to figure out how to do this tastefully. My main area of consideration here is that the handoff artifacts, in their "intended use" are to be persisted locally (not saying they WILL be, but as HVE Core is currently designed, the "intended use" is user specific local storage). Local artifacts, just like GHCP generating code or documentation generation are intended for human review.

As currently designed the agent receivers of these handoff artifacts (the backlog agents) must be operationalized by the user explicitly, the artifacts passed to them, and they are backed by 3 operational modalities:

  • Full: after human approval, execute all operations without pausing for confirmation
  • Partial (default): after human approval, pause for confirmation on destructive or high-risk mutations; proceed autonomously on safe operations
  • Manual: Pause for human confirmation on every mutating operation

All three operational modalities have multi-step human interaction requirements, and there is no masked workflows happening. The human is identifying and selecting a specific agent for execution, and any delegation (only available to subagents), only has the bounded context of the original agent's human request.

I think at the end of the day, the thing we really care about here from a system/agent operations perspective is to ensure that a human has reviewed the artifacts that are intended for other humans to consume. If we can agree on that, then I think the most important thing about AI generation attribution is to provide, as part of the disclaim footer, a markdown checkbox that offers, "has" or "has not" been reviewed by a human, with a default selection of "has not". This sends a much stronger signal, of attestation of review ... which is really what we are trying to set the behavioral outcome for. Consuming agents can also gate on this field ... as an added benefit.

WilliamBerryiii and others added 2 commits April 3, 2026 14:10
…system

- remove human review checkbox from agentic artifacts (Control Surface
  Catalog, Evidence Register) in impact assessment instructions
- remove superseded qualifier prose from RAI Review Summary template
  in backlog handoff instructions
- add Artifact Attribution and Review section to handoff pipeline docs
  with footer classification table
- add footer classification notes to Phase 5 and Phase 6 outputs in
  phase reference docs
- add conversational vs persisted disclaimer note to agent overview docs

📝 - Generated by Copilot
@github-actions github-actions bot mentioned this pull request Apr 3, 2026
@WilliamBerryiii
Copy link
Copy Markdown
Member Author

Artifact Attribution and Review — Summary of Changes

Thank you for the thorough review, @raymond-nassar. We implemented a two-tier attribution system across the RAI planning artifact templates and added documentation to support the new conventions.

Tier 1: AI-Content Note

All persisted artifacts now include an AI-content note adapted from the Microsoft Learn per-article pattern:

Note — The author created this content with assistance from AI. All outputs should be reviewed and validated before use.

Tier 2: Full Disclaimer

The handoff summary — the primary stakeholder-facing deliverable — includes the complete verbatim disclaimer after the AI-content note and human review checkbox.

Human Review Checkbox

Human-facing artifacts include a review checkbox to track validation status:

  • Reviewed and validated by a human reviewer

Artifact Classification

Artifact AI-Content Note Human Review Checkbox Full Disclaimer
Control Surface Catalog
Evidence Register
RAI Tradeoffs
ADO Work Items
GitHub Issues
RAI Review Summary
Transparency Note Outline
Monitoring Summary
Handoff Summary
Compact Handoff Summary

Control Surface Catalog and Evidence Register are classified as agentic artifacts (consumed by later pipeline phases) and receive only the AI-content note. All other artifacts are human-facing and include the review checkbox.

Files Changed

Instruction files:

  • rai-impact-assessment.instructions.md — corrected footer placement on agentic artifacts
  • rai-backlog-handoff.instructions.md — removed superseded qualifier from RAI Review Summary

Documentation:

  • docs/agents/rai-planning/handoff-pipeline.md — new "Artifact Attribution and Review" section with footer classification table
  • docs/agents/rai-planning/phase-reference.md — footer classification notes in Phase 5 and Phase 6 outputs
  • docs/agents/rai-planning/agent-overview.md — note distinguishing conversational disclaimers from persisted artifact footers

- add centralized config files for disclaimers and footers with human review
- add JSON schema for config file validation
- add Validate-AIArtifacts.ps1 with scope-filtered artifact classification
- add Pester tests (20 passing) for all validation functions
- add ai-artifact-validation.yml reusable workflow gated in pr-validation
- add lint:ai-artifacts and validate:ai-artifacts npm scripts

🔧 - Generated by Copilot
@WilliamBerryiii
Copy link
Copy Markdown
Member Author

AI Artifact Validation Infrastructure — Update Summary

This latest commit (c0396f45) adds a config-driven CI validation pipeline for enforcing footer and disclaimer standards across AI artifact files (instructions, agents, prompts, skills).

What was added

  • Centralized config files.github/config/disclaimers.yml and .github/config/footer-with-review.yml define the canonical footer text, human review checkbox, and tiered artifact classification with scope-aware glob patterns. These are the single source of truth for what text is required and where.
  • Validation scriptscripts/linting/Validate-AIArtifacts.ps1 (612 lines) classifies files into tiers (agentic, human-facing, human-facing-with-disclaimer), checks for required footers and disclaimers, and reports missing content with file paths and line-level detail.
  • JSON Schemascripts/linting/schemas/ai-artifact-config.schema.json validates the structure of both YAML config files.
  • CI workflow.github/workflows/ai-artifact-validation.yml (reusable, with soft-fail input) wired into pr-validation.yml as a gating check.
  • Pester test suitescripts/tests/linting/Validate-AIArtifacts.Tests.ps1 with 20 tests covering config loading, footer matching, scope filtering, artifact reference discovery, and end-to-end compliance.
  • npm scriptslint:ai-artifacts (gating) and validate:ai-artifacts (advisory) added; lint:all chain updated.

Expansion plans

The current scope filter targets rai-planning and security instruction files — the two areas where footers and disclaimers were added in this PR. The infrastructure is designed to expand incrementally:

  1. Add new scopes — When other focus areas (e.g., design-thinking, ado, coding-standards) adopt footers, add their glob patterns to the scope arrays in footer-with-review.yml. No script changes needed.
  2. Add new disclaimer sets — New disclaimer text blocks can be added to disclaimers.yml with their own applies-to patterns. The validation script already supports multiple disclaimer definitions.
  3. Add new tiers — The three-tier classification (agentic → human-facing → human-facing-with-disclaimer) can be extended by adding new entries to the config YAML and schema.
  4. Cross-artifact-type validation — The script already handles .instructions.md, .agent.md, .prompt.md, and SKILL.md files. Expanding scope patterns is sufficient to cover new directories.

The goal is for each focus area to opt in by adding its scope patterns to the config files — keeping validation centralized while allowing incremental adoption across the codebase.

🔧 - Generated by Copilot

@WilliamBerryiii
Copy link
Copy Markdown
Member Author

Correction to previous comment

The scope in footer-with-review.yml has been narrowed to rai-planning only. The previous comment incorrectly stated security instruction files were in scope — no security files were modified in this PR, and the security scope patterns have been removed from the config.

Updated scope: .github/instructions/rai-planning/** only.

Updated expansion plan: When other focus areas (e.g., security, design-thinking, ado, coding-standards) adopt footers, add their glob patterns to the scope arrays in footer-with-review.yml. No script changes needed — each area opts in by adding its scope patterns to the config files.

Validation results after fix: 2 files / 7 issues (down from 3 files / 9 issues), all within rai-planning.

🔧 - Generated by Copilot

WilliamBerryiii and others added 4 commits April 3, 2026 16:14
…iling newline

Security instruction files were not modified in this PR. Remove
.github/instructions/security/** scope patterns from footer-with-review.yml
to avoid false positive validation warnings. Fix missing trailing newline
in package.json.

🔧 - Generated by Copilot
- switch Find-ArtifactReferences from content-based to filename-based matching
- update Pester tests for filename-based artifact matching logic
- fix BOM encoding and empty catch blocks for PSScriptAnalyzer
- update Docusaurus collection card counts for rai-planning
- auto-fix markdown table formatting in handoff-pipeline

🔧 - Generated by Copilot
… consistency

- prettify tables in 5 rai-planning instruction files using LF-normalized input
- resolves CRLF/LF formatting divergence between Windows and Linux CI

🎨 - Generated by Copilot
@WilliamBerryiii
Copy link
Copy Markdown
Member Author

Resolved merge conflicts with origin/main (�d98b00a).

Conflicted files (3):

  • docs/docusaurus/src/data/collectionCards.ts — accepted main's dynamic resolveCollectionCards()/resolveMetaCollections() pattern, removed HEAD's static artifact count
  • plugins/hve-core-all/README.md — merged HEAD's rai-planner 6-phase description with main's security skill wording and table formatting
  • plugins/security/README.md — merged HEAD's rai-planner and rai command descriptions with main's security skill wording and new security-review-sbd command

All conflicts resolved by combining both sides: HEAD's PR-specific changes (rai-planner guide alignment) alongside main's independent updates (security reviewer renaming, secure-by-design skill).

@WilliamBerryiii WilliamBerryiii force-pushed the feat/rai-planner-guide-alignment branch from ad98b00 to ad1bc61 Compare April 8, 2026 20:18
label: "AI-Content Note (Tier 1)"
text: >-
> **Note** — The author created this content with assistance from AI.
All outputs should be reviewed and validated before use.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From Jackie:

Line 16: All outputs should be reviewed and validated by a qualified human reviewer before use.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you Raymond.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed. The footer-with-review.yml centralized configuration updated at both locations:

  • ai-content-note (L16): "All outputs should be reviewed and validated by a qualified human reviewer before use."
  • human-review-checkbox (L21): "Reviewed and validated by a qualified human reviewer"

Both the centralized config and all 6 inline footer locations in rai-backlog-handoff.instructions.md now use identical "qualified human reviewer" language. No discrepancy remains.

* Pass: composite >= 70.
* Conditional: composite 50-69 (proceed with mandatory remediation work items).
* Fail: composite < 50 (return to assessment phase).
* **Ready for stakeholder review** — All dimensions addressed with supporting evidence; no critical gaps identified.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest removing no critical gaps identified portion. I don't think we want to say if something is critical or not?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed. Replaced the "no critical gaps identified" language at line 35 with a 3-tier neutral assessment framework. The review quality checklist uses 6 dimensions (Standards Alignment, Threat Completeness, Control Effectiveness, Evidence Quality, Tradeoff Resolution, Risk Classification) with these status tiers:

  • "Ready for stakeholder review" — All dimensions addressed with supporting evidence
  • "Additional attention suggested" — Most dimensions addressed; one or more areas flagged
  • "Significant areas need further consideration" — Multiple dimensions have limited coverage

Added the governing instruction at line 43: "Frame all assessments as suggested observations based on session findings."

The file no longer makes criticality judgments about gaps. The agent produces observations and suggested status tiers; the qualified human reviewer determines significance.

### Remediation Suggested: {Yes/No}
### Work Items Generated: {count}

> **Note** — The author created this content with assistance from AI. All outputs should be reviewed and validated before use.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reviewed and validated by a qualified human before use.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed. All 6 inline footer locations in rai-backlog-handoff.instructions.md updated with "qualified human reviewer" language:

# Lines Context
1 L98–99 RAI Review Summary markdown blockquote + checkbox
2 L182–183 ADO HTML <p> tag template
3 L245–246 ADO Bug work item footer
4 L369–372 GitHub issue body footer
5 L418–419 GitHub Bug issue template
6 L437–438 GitHub Research issue template

Each footer follows the two-line pattern:

> **Note** — The author created this content with assistance from AI. All outputs should be reviewed and validated before use.
> - [ ] Reviewed and validated by a qualified human reviewer

Both the centralized footer-with-review.yml config and the 6 inline footers in rai-backlog-handoff.instructions.md now use identical "qualified human reviewer" language.

<li>{criterion_2}</li>
</ul>
<blockquote>
<p><strong>Note</strong> — The author created this content with assistance from AI. All outputs should be reviewed and validated before use.</p>
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All outputs should be reviewed and validated by a qualified human before use

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed. The ADO HTML template <blockquote> at line 182 updated with the full footer pattern:

<p><strong>Note</strong> — The author created this content with assistance from AI.
All outputs should be reviewed and validated before use.</p>
<p>☐ Reviewed and validated by a qualified human reviewer</p>

This is footer location #2 of 6 in rai-backlog-handoff.instructions.md. All 6 locations use identical reviewer language. See Comment #5 for the full location table.

* User Story: Specific control or mitigation.
* Task: Implementation steps for a user story.
* Bug: Existing RAI violations requiring remediation.
* Bug: Existing RAI areas of concern requiring attention.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested RAI area requiring attention.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed. Updated at line 196 in rai-backlog-handoff.instructions.md:

  • Before: * Bug: Existing RAI areas of concern requiring attention.
  • After: * Bug: Suggested RAI area requiring attention.

Removes the "Existing" qualifier (implies pre-existing known issues rather than newly identified observations) and replaces "areas of concern" with neutral "requiring attention" phrasing. This was identified as a gap during deep review and amended into commit 15f9d1dc.

* Impact: High, Medium, Low, or ❓ (unassessed).
* Risk: Calculated using the standard risk matrix (High x High = Critical, High x Medium or Medium x High = High, Medium x Medium = Medium, Low x any or any x Low = Low).
* Suggested Threat Origin: Where the threat originates (Data Pipeline, Model, Interface, Infrastructure, or Cross-cutting).
* Concern Level: Qualitative assessment of threat significance (Low Concern, Moderate Concern, or High Concern).
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we say how this is calculated?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's over in the STRIDE model for security, I'll update to add a comment to point to it.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed per your earlier thread reply. Changes to rai-security-model.instructions.md:

  1. Cross-reference added: Inserted "See Concern Level Assessment below for criteria." into the Concern Level column definition in the ML STRIDE output table. This links the column header to the assessment guidance section.

  2. Concern Level Assessment defines three qualitative tiers (not numerical risk ratings):

    Level Criteria
    Low Concern "Threat is theoretical or mitigated by existing controls; no immediate action suggested."
    Moderate Concern "Threat is plausible and partially mitigated; additional controls recommended."
    High Concern "Threat is likely or unmitigated; priority mitigation suggested."

    Includes the caveat: "The concern level is a suggested assessment for the team's consideration, not a definitive risk rating."

  3. ML STRIDE matrix columns updated: 8×6 matrix (8 components × 6 STRIDE categories) now uses 7 NIST trustworthiness characteristic columns instead of the legacy 6 Microsoft principles. Each cell annotates Applicability / NIST Characteristic for traceability.

The cross-reference note was identified as a gap during deep review and amended into commit 15f9d1dc.

applyTo: '**/.copilot-tracking/rai-plans/**'
---

# Sensitive Uses Trigger Screening
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be included? This is internal to Microsoft. will this be internal only?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you take the same approach as restricted use and allow a user to specify the framework to use to determine sensitive use.

Copy link
Copy Markdown
Member Author

@WilliamBerryiii WilliamBerryiii Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the 3 buckets, that are annotated in the public MSFT Impact Assessment and Guide documents. It's unaffiliated with any MSFT specific (internal) processes. This instruction set also allows for the importing of sensitive use triggers from other pubic specifications like those from Singapore, UK/AUS, and EU governing standards bodies.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed comprehensively. The entire file has been redesigned:

  1. Renamed from rai-sensitive-uses-triggers.instructions.mdrai-risk-classification.instructions.md (commit e221ae0f)

  2. Replaced legacy binary T1/T2/T3 triggers with 3 NIST AI RMF 1.0-derived risk indicators:

    Indicator NIST Source Method Domain
    safety_reliability MS-2.5, MS-2.6 Binary (present/absent) Physical harm, psychological injury, operational disruption
    rights_fairness_privacy MS-2.8, MS-2.10, MS-2.11 Categorical (None/Indirect/Direct/Primary) Discrimination, rights restriction, equitable access, personal data misuse, accountability gaps
    security_explainability MS-2.7, MS-2.9 Continuous (0.0–1.0) Adversarial attacks, data poisoning, model theft, inability to explain consequential decisions

    MS-2.8 (Accountable and Transparent) groups with fairness/privacy because "accountability gaps directly affect rights recourse mechanisms."

  3. Added framework isolation: Custom framework documents can fully replace the default NIST indicators via the replaceDefaultIndicators: true flag in riskClassification state. Risk Indicator Extensions are always additive: they never replace defaults even when replaceDefaultIndicators is set.

  4. Added Prohibited Uses Gate: Safety-critical check before risk indicator assessment, modeled on EU AI Act Article 5 prohibited practices. Renamed from "Restricted Uses Gate" across all files.

  5. Added code-of-conduct reference type: Agent prompts users for AI service provider codes of conduct during Phase 1 and cross-references them during risk indicator evaluation.

No platform specific trigger categories remain. Default indicators use universal NIST-aligned language; organizations can supply their own internal policies as custom framework documents without exposing them as hardcoded defaults.


Custom categories do not replace the fixed T1/T2/T3 triggers. They extend the evaluation with additional criteria the user considers relevant to their organizational context.

## Sensitive Use Trigger Screening
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See above for comment on applying same logic for restricted use here. That way we can use our internal policies for SU without exposing to external users.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yes ... I actually have some cool stuff for customers to be able to override these with their own specific RAI systems. Let' me make that more clear in the documents how it works.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed via the complete Phase 2 redesign:

  • Default risk indicators now use universal NIST-aligned language mapped to NIST AI RMF subcategories (MS-2.5 through MS-2.11), not proprietary categories

  • Custom framework override via replaceDefaultIndicators: true in the riskClassification state object enables organizations to load their own internal policies as custom framework documents without exposing them as hardcoded defaults. Risk Indicator Extensions are always additive on top of whichever base set is active — they never replace defaults even when replaceDefaultIndicators is set

  • The cross-framework terminology mapping informed naming choices throughout:

    Term Used Source Standard
    "Risk Classification" EU AI Act, ISO 42001
    "risk indicators" NIST AI RMF Map-1.1 "risk characteristics"
    "prohibited uses" EU AI Act Article 5
    "code-of-conduct" reference AI service provider compliance documents
  • No platform-specific categories remain in the codebase. Organizations supply their own policies through the referencesProcessed mechanism and the agent cross-references them during risk indicator evaluation


Evaluate the AI system against three binary triggers derived from the Microsoft Responsible AI Impact Assessment Template §3.6. Each trigger is binary (triggered or not triggered). There is no partial activation or severity grading within triggers.

### Trigger Table
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack. All of this is from our internal policies correct? The EU act has it's own:
Biometrics
Critical infrastructure
Education access or evaluation
Employment decisions
Access to essential services
Law enforcement
Migration / border control
Justice systems

and OECD AI system classification framework has dimensions like:

Context of use
Potential societal impact
Data sensitivity
Level of autonomy
Transparency / explainability

Here's how they map:

Microsoft RAI EU AI Act OECD NIST
Sensitive Use High‑Risk AI High‑Impact Context MAP‑identified risk

I don't think we should specify our SU's in this if it will be used outside of Microsoft.

Copy link
Copy Markdown
Member Author

@WilliamBerryiii WilliamBerryiii Apr 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is ONLY from the public documents we provide through AKA.ms/RAI and the backing unauthenticated CDN hosting of the content. Also much of what you are seeing, language wise, is taken from the MSFT AI Code of Conduct and all the associated documents that hang off it from service agreements. That said, I'm going to fully remove all the content that references MSFT's content in this space and just refer to the public/government aligned standards and enhance the ability to customize.


Phase 2 screens AI systems for sensitive use triggers using three binary assessments derived from the Microsoft Responsible AI Impact Assessment Template §3.6. For copyright and intellectual property notices applicable to the Microsoft Responsible AI Impact Assessment Guide, see the Attribution section in `rai-standards.instructions.md`. The restricted uses gate executes first as a safety-critical binary check. Trigger results determine the suggested assessment depth tier for subsequent phases.

## Restricted Uses Gate
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Restricted" is a very Microsoft coined term. Could go with Prohibited to make this less Microsoft focused if the goal is to be used outside of Microsoft.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed. Renamed all occurrences across 3 instruction files:

  • restrictedUsesGateprohibitedUsesGate (state field in rai-identity.instructions.md)
  • restricted-use-frameworkprohibited-use-framework (reference type)
  • "Restricted Uses Gate" → "Prohibited Uses Gate" (all prose references)
  • Gate protocol renamed: gateResults.restrictedUsesGategateResults.prohibitedUsesGate in state.json schema

The "Prohibited" terminology aligns with EU AI Act Article 5 "prohibited practices," which is the international standard term. ~45 occurrences updated across:

File Approximate Occurrences
rai-risk-classification.instructions.md ~20 (complete rewrite of file)
rai-identity.instructions.md ~15 (state schema, phase definitions, gate protocol)
rai-impact-assessment.instructions.md ~10 (cross-references, evidence register)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've left several comments on the use of Microsoft terms and language around RAI like "sensitive use" and "restricted use" etc. There are other terms being used in the industry that might land a bit better and feel less like Microsoft pushing our way etc. Also I would remove the Sensitive Use as that is proprietary to Microsoft. I've added some examples from other frameworks. Perhaps the same approach that is taken for "restricted" could be applied for sensitive use.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed. This comment is the summary motivation for the framework-agnostic redesign:

  • "Sensitive uses""Risk Classification" everywhere (universal term per EU AI Act, ISO 42001)
  • "Restricted""Prohibited" everywhere (aligns with EU AI Act Article 5 "prohibited practices")
  • All legacy binary triggers replaced with 3 NIST AI RMF 1.0-derived risk indicators (binary, categorical, and continuous assessment methods)
  • Control surface taxonomy updated from 6×3 (6 legacy principles × Prevent/Detect/Respond) to 7×3 (7 NIST trustworthiness characteristics × Prevent/Detect/Respond)
  • Evidence register abbreviations updated to NIST-aligned keys using the format EV-{CHARACTERISTIC_ABBR}-{NNN} where abbreviations are: VR (Valid and Reliable), SAFE, SR (Secure and Resilient), AT (Accountable and Transparent), EI (Explainable and Interpretable), PRIV (Privacy-Enhanced), FAIR (Fair with Harmful Bias Managed)
  • RAI tags updated from rai:{legacy} to rai:{nist-key} format (e.g., rai:valid-reliable, rai:secure-resilient) in both ADO and GitHub templates

| Control Effectiveness | Coverage and effectiveness of controls for identified threats |
| Evidence Quality | Quality and availability of evidence supporting control effectiveness |
| Tradeoff Resolution | Clarity of principle tradeoff analysis and resolution rationale |
| Sensitive Uses | Whether sensitive use triggers were addressed with appropriate depth |
Copy link
Copy Markdown
Collaborator

@mspuckit mspuckit Apr 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eeek. This one worries me a bit. What does "appropriate depth" mean? and with SU we typically speak in terms of mitigation vs. addressed

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed. Replaced the ambiguous "appropriate depth" phrasing with mitigation-focused language in both documentation files:

  • handoff-pipeline.md: Review dimension updated from "addressed with appropriate depth" to "evaluated with documented mitigations"
  • phase-reference.md L283: Same replacement — "Whether risk indicators were evaluated with documented mitigations"

The mitigation-focused language aligns with NIST's risk management approach: Phase 2 risk indicators should be evaluated (assessed against evidence) with documented mitigations (specific controls recorded), not vaguely "addressed." This was identified as a gap during deep review and amended into commit 15f9d1dc.

## Phase 2: RAI Standards Mapping
## Phase 2: Sensitive Uses Assessment

> NIST AI RMF alignment: Govern
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this NIST or is it Microsoft SU? i'm a bit confused.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed. The Phase 2 section in phase-reference.md has been fully rewritten to eliminate the NIST vs. Microsoft confusion:

  • Section title: "Sensitive Uses Assessment" → "Risk Classification"
  • Content: Removed all platform specific language. Now references NIST AI RMF 1.0 Map function contextual assessment with 3 risk indicators (binary, categorical, continuous methods)
  • State fields: Updated all references from legacy to NIST-aligned naming:
    • sensitiveUsesTriggersriskClassification
    • restrictedUsesGateprohibitedUsesGate
    • principleTrackercharacteristicTracker with 7 NIST keys: validReliable, safe, secureResilient, accountableTransparent, explainableInterpretable, privacyEnhanced, fairBiasManaged
  • NIST subcategory annotations: Each characteristic now includes traceable references (MS-2.5 through MS-2.11) for audit purposes
  • Review dimension: "addressed with appropriate depth" → "evaluated with documented mitigations"


### Purpose

Screen the AI system for sensitive use triggers to determine the suggested assessment depth tier for subsequent phases. This phase uses three binary assessments derived from the Microsoft Responsible AI Impact Assessment Template §3.6.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See previous comments about SU's :)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Addressed — covered by the same Phase 2 redesign in Comment #20. All "sensitive uses" references in phase-reference.md replaced with "Risk Classification" terminology, "Prohibited Uses Gate" naming, and NIST AI RMF 1.0 subcategory annotations. The companion handoff-pipeline.md received the same terminology updates including the review dimension language change ("evaluated with documented mitigations").

…k-classification

- rename instruction file to reflect NIST AI RMF risk classification alignment
- update collection manifests with new file path
- regenerate plugin symlinks for renamed file

🔄 - Generated by Copilot
…ess characteristics

- replace 6 Microsoft RAI principles with 7 NIST trustworthiness characteristics
- rewrite standards, identity, impact assessment, security model, and backlog handoff
- update agent definition, prompts, and documentation for NIST alignment
- migrate state schema to riskClassification
- regenerate plugin outputs

🏛️ - Generated by Copilot
@WilliamBerryiii
Copy link
Copy Markdown
Member Author

Re: Disclaimer text update (5 files)

Addressed. All 5 files updated with the expanded disclaimer text. The updated disclaimer replaces the generic 1-line AI notice with a multi-sentence version specifying professional review requirements and output types (risk assessments, security models, planning artifacts).

One modification from the suggested text: "sensitive use screenings" updated to "risk classification screenings" to align with the terminology redesign across this PR.

File Status Notes
.github/agents/rai-planning/rai-planner.agent.md ✅ Updated Agent definition disclaimer
.github/instructions/rai-planning/rai-identity.instructions.md ✅ Updated Identity instructions disclaimer
.github/prompts/rai-planning/rai-capture.prompt.md ✅ Updated Capture prompt disclaimer
.github/prompts/rai-planning/rai-plan-from-prd.prompt.md ✅ Updated PRD prompt disclaimer
.github/prompts/rai-planning/rai-plan-from-security-plan.prompt.md ✅ Updated Security plan prompt disclaimer

@WilliamBerryiii
Copy link
Copy Markdown
Member Author

Thank you for the review! All feedback incorporated — see inline replies on each comment thread for specific before/after details and file references.

@WilliamBerryiii
Copy link
Copy Markdown
Member Author

NIST AI RMF 1.0 Sole Embedded Standard — Complete Alignment

This PR migrates the RAI Planner from Microsoft's 6 proprietary RAI principles to NIST AI RMF 1.0's 7 trustworthiness characteristics as the sole embedded standard. All proprietary framework content has been removed.

29 files changed | 953 insertions | 744 deletions | 2 commits

Architecture Changes

Change Before After
Embedded standard Microsoft Public RAI Guide (6 principles) NIST AI RMF 1.0 (7 characteristics)
Phase 2 Sensitive Uses Assessment (binary triggers) Risk Classification (3 assessment methods)
State tracker principleTracker with 6 keys characteristicTracker with 7 NIST keys
Prohibited gate restrictedUsesGate prohibitedUsesGate
Risk triggers sensitiveUsesTriggers (T1/T2/T3) riskClassification (3 NIST-derived indicators)
Framework flexibility Hardcoded platform defaults NIST default + custom framework override
Disclaimer Generic 4-line text Expanded text with specific professional roles and output types

NIST 7 Trustworthiness Characteristics

Characteristic Key Evidence Abbrev RAI Tag
Valid and Reliable validReliable VR rai:valid-reliable
Safe safe SAFE rai:safe
Secure and Resilient secureResilient SR rai:secure-resilient
Accountable and Transparent accountableTransparent AT rai:accountable-transparent
Explainable and Interpretable explainableInterpretable EI rai:explainable-interpretable
Privacy-Enhanced privacyEnhanced PRIV rai:privacy-enhanced
Fair (with Harmful Bias Managed) fairBiasManaged FAIR rai:fair-bias-managed

Terminology Changes

Before After Rationale
Sensitive Uses Assessment Risk Classification Universal term (EU AI Act, ISO 42001, NIST)
Restricted Uses Gate Prohibited Uses Gate Aligns with EU AI Act "prohibited practices"
Sensitive use triggers Risk indicators NIST Map-1.1 "risk characteristics"
principles / principleTracker characteristics / characteristicTracker NIST AI RMF 1.0 terminology
Microsoft RAI Guide attribution Removed Public, but proprietary content
"no critical gaps identified" Neutral gap language Avoids criticality judgment
"appropriate depth" "evaluated with documented mitigations" Mitigation-focused per NIST

Files Changed

File Change
rai-risk-classification.instructions.md New (renamed from rai-sensitive-uses-triggers.instructions.md) — complete rewrite with NIST risk indicators
rai-standards.instructions.md Removed proprietary attribution and 6-principle content; added NIST characteristics section and framework isolation
rai-identity.instructions.md State schema migration (6→7 keys), Phase 2 rename, framework selection prompt, code-of-conduct reference type
rai-impact-assessment.instructions.md Control surface taxonomy 6→7 rows, evidence register abbreviations, RAI tags, terminology
rai-security-model.instructions.md ML STRIDE matrix 6→7 columns, concern level cross-reference, terminology
rai-backlog-handoff.instructions.md RAI tags, footer text ("qualified human reviewer"), work item templates, "Suggested RAI area requiring attention"
rai-capture-coaching.instructions.md Minor terminology update
rai-planner.agent.md Instruction path update, disclaimer replacement, description updates
rai-capture.prompt.md Disclaimer replacement
rai-plan-from-prd.prompt.md Disclaimer replacement
rai-plan-from-security-plan.prompt.md Disclaimer replacement
hve-core-all.collection.yml Path update for renamed file
rai-planning.collection.yml Path update for renamed file
phase-reference.md Phase 2 rewrite, review dimensions with mitigation language
handoff-pipeline.md Review dimensions with mitigation language
agent-overview.md Terminology updates
README.md Terminology updates
entry-modes.md Removed author: Microsoft frontmatter
why-rai-planning.md Terminology and reference updates
plugins/* (6 files) Regenerated via npm run plugin:generate

Breaking Changes

  • State schema: principleTrackercharacteristicTracker (7 keys instead of 6)
  • State fields: sensitiveUsesTriggersriskClassification, restrictedUsesGateprohibitedUsesGate
  • File rename: rai-sensitive-uses-triggers.instructions.mdrai-risk-classification.instructions.md
  • Reference types: restricted-use-frameworkprohibited-use-framework, new code-of-conduct type

Validation

  • npm run lint:md — ✅ 0 errors
  • npm run spell-check — ✅ 0 issues
  • npm run lint:frontmatter — ✅ (6 pre-existing author warnings only)
  • npm run lint:yaml — ✅
  • npm run lint:links — ✅
  • npm run lint:collections-metadata — ✅
  • npm run plugin:generate — ✅
  • npm run plugin:validate — ✅

Comment Resolution Checklist

# Reviewer Topic Status
1–3 raymond-nassar Early comments (resolved) ✅ Previously resolved
4 mspuckit "no critical gaps" removal
5 mspuckit Footer: "qualified human"
6 mspuckit ADO HTML footer
7 mspuckit "Suggested RAI area requiring attention"
10 mspuckit Concern level calculation cross-ref
11–13 mspuckit Trigger categories too Microsoft-specific
14 mspuckit Restricted → Prohibited
15 raymond-nassar Footer-with-review.yml
16 mspuckit Internal policies exposure
17 mspuckit Cross-framework terminology
18 mspuckit Summary: remove Microsoft terms
19 mspuckit "appropriate depth" → mitigation
20 mspuckit NIST vs SU confusion in docs
21 mspuckit SU references in docs
RL-1 raymond-nassar Disclaimer text (5 files)
RL-2 raymond-nassar Positive first impressions ✅ No action needed
Owner WilliamBerryiii Remove all MSFT content

- add author: Microsoft to 6 RAI planning doc pages for CI frontmatter validation
- format tables in 4 RAI planning instruction files
- format tables in 4 RAI planning doc files
- fix symlink index for 2 plugin instruction files

🔧 - Generated by Copilot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Align RAI Planner with Impact Assessment Guide and improve UX

4 participants