-
Notifications
You must be signed in to change notification settings - Fork 13
feat: add SCORE governance core contracts #54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 2 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
936d1f0
feat: add SCORE governance core contracts
FScholPer 6dd4ae4
docs: clarify work-card terminology for agent-card schema
FScholPer ed1d919
Update .github/score/repo-manifest.json
FScholPer 5fd6b70
fix(schema): make mcp optional and update repo-manifest schema id
FScholPer e0b39b4
Merge branch 'main' into split/pr51-core
FScholPer dfd2dd5
Merge branch 'main' into split/pr51-core
FScholPer be9678b
Merge branch 'main' into split/pr51-core
FScholPer f33c3da
Merge branch 'main' into split/pr51-core
FScholPer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| You are operating inside the SCORE governance overlay. | ||
|
|
||
| This file is runtime-specific glue. | ||
| Canonical, runtime-neutral policy should live in AGENTS.md. | ||
|
|
||
| This repository intentionally keeps only SCORE-specific governance contracts and lightweight maintenance rules. | ||
| Generic workflow execution (for example Spec Kit, OpenSpec, BMAD, or custom runtime behavior) is inherited externally by adopter repositories. | ||
|
|
||
| ## Responsibilities | ||
|
|
||
| 1. Preserve issue-first traceability. | ||
| 2. Preserve SCORE-specific contracts: | ||
| - `.github/references/repo-manifest.schema.json` | ||
| - `.github/references/agent-card.schema.json` | ||
| - `.github/score/repo-manifest.json` | ||
| 3. Keep maintenance burden low by avoiding broad framework content in this repo. | ||
|
|
||
| Terminology note: `.github/references/agent-card.schema.json` defines a SCORE work/handoff artifact, not an A2A service-discovery AgentCard. | ||
|
|
||
| ## Scope | ||
|
|
||
| - Keep local content focused on SCORE-specific policy and schema contracts. | ||
| - Avoid embedding large generic agent/prompt catalogs. | ||
| - Prefer placeholders for runtime-specific naming: | ||
| - `<ASSISTANT_INSTRUCTIONS_FILE>` | ||
| - `<AI_ASSISTANT_NAME>` | ||
| - `<AI_REVIEW_BOT>` | ||
|
|
||
| ## Artifact Rules | ||
|
|
||
| - Use issue-scoped folders for work artifacts: | ||
| - `.stage/ISSUE-<number>/...` | ||
| - Never create anonymous stage artifacts at repository root. | ||
|
|
||
| ## SDLC Progress Block | ||
|
|
||
| When status tracking is needed, use this block: | ||
|
|
||
| ### SDLC Progress -- <ISSUE-ID> | ||
| - [ ] PLAN (Roadmap) -- Not Started (or Skipped) | ||
| - [ ] PLAN (Tech Analysis) -- Not Started (or Skipped) | ||
| - [ ] PLAN (Requirements) -- Not Started | ||
| - [ ] SETUP -- Not Started (or Skipped) | ||
| - [ ] CODE Phase -- Not Started | ||
| - [ ] BUILD Phase -- Not Started | ||
| - [ ] TEST Phase -- Not Started | ||
| - [ ] RELEASE Phase -- Not Started | ||
|
|
||
| Notes: | ||
| - Roadmap planning is optional. | ||
| - Most single issues go directly to requirements and implementation. | ||
|
|
||
| ## Governance Rules | ||
|
|
||
| - Keep policy files concise and deterministic. | ||
| - Keep generated or inherited framework artifacts outside this repository, or produce them from a renderer in adopter repos. | ||
| - Run markdown hygiene checks before merge. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,155 @@ | ||
| { | ||
| "$schema": "https://json-schema.org/draft/2020-12/schema", | ||
| "$id": "https://score.dev/schemas/agent-card.schema.json", | ||
| "title": "SCORE Work Card (Agent Handoff)", | ||
| "description": "Structured handoff artifact exchanged between agents and tools for one issue-scoped work item. This schema is a work/handoff artifact and is not the A2A service-discovery AgentCard.", | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "version", | ||
| "issue_id", | ||
| "repository", | ||
| "goal", | ||
| "status", | ||
| "summary", | ||
| "validation", | ||
| "next_action" | ||
| ], | ||
| "properties": { | ||
| "version": { | ||
| "const": 1 | ||
| }, | ||
| "issue_id": { | ||
| "type": "string", | ||
| "pattern": "^(ISSUE-[0-9]+|POC-[0-9]{8}-[0-9]{4})$" | ||
| }, | ||
| "repository": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "branch": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "goal": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "status": { | ||
| "type": "string", | ||
| "enum": [ | ||
| "in_progress", | ||
| "blocked", | ||
| "ready_for_handoff", | ||
| "completed" | ||
| ] | ||
| }, | ||
| "summary": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "findings": { | ||
| "type": "array", | ||
| "items": { | ||
| "$ref": "#/$defs/note" | ||
| }, | ||
| "default": [] | ||
| }, | ||
| "open_questions": { | ||
| "type": "array", | ||
| "items": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "default": [] | ||
| }, | ||
| "touched_files": { | ||
| "type": "array", | ||
| "items": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "uniqueItems": true, | ||
| "default": [] | ||
| }, | ||
| "validation": { | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "status" | ||
| ], | ||
| "properties": { | ||
| "status": { | ||
| "type": "string", | ||
| "enum": [ | ||
| "not_run", | ||
| "passed", | ||
| "failed" | ||
| ] | ||
| }, | ||
| "commands": { | ||
| "type": "array", | ||
| "items": { | ||
| "$ref": "#/$defs/commandResult" | ||
| }, | ||
| "default": [] | ||
| } | ||
| } | ||
| }, | ||
| "trajectory": { | ||
| "type": "array", | ||
| "items": { | ||
| "$ref": "#/$defs/note" | ||
| }, | ||
| "default": [] | ||
| }, | ||
| "next_action": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| } | ||
| }, | ||
| "$defs": { | ||
| "note": { | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "title", | ||
| "detail" | ||
| ], | ||
| "properties": { | ||
| "title": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "detail": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| } | ||
| } | ||
| }, | ||
| "commandResult": { | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "command", | ||
| "status" | ||
| ], | ||
| "properties": { | ||
| "command": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "status": { | ||
| "type": "string", | ||
| "enum": [ | ||
| "passed", | ||
| "failed" | ||
| ] | ||
| }, | ||
| "detail": { | ||
| "type": "string" | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,152 @@ | ||
| { | ||
| "$schema": "https://json-schema.org/draft/2020-12/schema", | ||
| "$id": "https://score.dev/schemas/repo-manifest.schema.json", | ||
| "title": "SCORE Repo Manifest", | ||
| "description": "Minimal federated harness contract for a SCORE repository.", | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "version", | ||
| "repository", | ||
| "bootstrap", | ||
| "execution", | ||
| "mcp" | ||
|
FScholPer marked this conversation as resolved.
Outdated
|
||
| ], | ||
| "properties": { | ||
| "version": { | ||
| "const": 1 | ||
| }, | ||
| "repository": { | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "name", | ||
| "language", | ||
| "visibility" | ||
| ], | ||
| "properties": { | ||
| "name": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "language": { | ||
| "type": "string", | ||
| "enum": [ | ||
| "python", | ||
| "go", | ||
| "rust", | ||
| "cpp", | ||
| "typescript", | ||
| "mixed", | ||
| "other" | ||
| ] | ||
| }, | ||
| "visibility": { | ||
| "type": "string", | ||
| "enum": [ | ||
| "public", | ||
| "internal", | ||
| "private" | ||
| ] | ||
| }, | ||
| "tags": { | ||
| "type": "array", | ||
| "items": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "uniqueItems": true, | ||
| "default": [] | ||
| } | ||
| } | ||
| }, | ||
| "bootstrap": { | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "contract_version" | ||
| ], | ||
| "properties": { | ||
| "contract_version": { | ||
| "type": "string", | ||
| "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]+$" | ||
| }, | ||
| "template_version": { | ||
| "type": "string", | ||
| "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]+$" | ||
| } | ||
| } | ||
| }, | ||
| "execution": { | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "build", | ||
| "test", | ||
| "lint" | ||
| ], | ||
| "properties": { | ||
| "build": { | ||
| "$ref": "#/$defs/commandSpec" | ||
| }, | ||
| "test": { | ||
| "$ref": "#/$defs/commandSpec" | ||
| }, | ||
| "lint": { | ||
| "$ref": "#/$defs/commandSpec" | ||
| }, | ||
| "typecheck": { | ||
| "$ref": "#/$defs/commandSpec" | ||
| } | ||
| } | ||
| }, | ||
| "mcp": { | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "server_name", | ||
| "tools" | ||
| ], | ||
| "properties": { | ||
| "server_name": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "tools": { | ||
| "type": "array", | ||
| "items": { | ||
| "type": "string", | ||
| "enum": [ | ||
| "build", | ||
| "test", | ||
| "lint", | ||
| "typecheck", | ||
| "search" | ||
| ] | ||
| }, | ||
| "uniqueItems": true, | ||
| "minItems": 1 | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "$defs": { | ||
| "commandSpec": { | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": [ | ||
| "command" | ||
| ], | ||
| "properties": { | ||
| "command": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| }, | ||
| "working_directory": { | ||
| "type": "string", | ||
| "minLength": 1 | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.