Platform Usage Reference
Deep-dive documentation for understanding and using all components of the platform.
Component 1: hackathon-repo-template
What it is: A reusable GitHub repository template for each solution component (frontend, backend, infra).
Files & Folders
.github/ISSUE_TEMPLATE/
Five issue form templates, each with required fields:
epic.yml — Epic Issue Form
Fields:
- Problem Statement (textarea) — What problem does this solve?
- Users/Personas (textarea) — Who are the end users?
- Business Outcomes (textarea) — What success looks like
- Non-Functional Requirements (textarea) — Performance, scale, reliability
- Out of Scope (textarea) — What's explicitly NOT included
- Risks (textarea) — Technical or business risks
- References (textarea) — Links to RFCs, designs, business docs
feature.yml — Feature Issue Form
Fields:
- Feature Objective (textarea) — What does the user do?
- Parent Epic (text) — Reference to Epic #N
- User Scenarios (textarea) — Example workflows
- Acceptance Criteria (textarea) — What must be true
- Technical Notes (textarea) — Implementation hints
- Dependencies (textarea) — Blockers or prerequisites
- Test Strategy (textarea) — How it will be verified
task.yml — Task Issue Form
Fields:
- Implementation Intent (textarea) — What code change(s)?
- Parent Feature (text) — Reference to Feature #N
- Definition of Done (textarea) — Checklist items (becomes checkboxes)
- Acceptance Criteria (textarea) — Team's verification steps
- Evidence Links (textarea) — PR links, test reports
architecture.yml — Architecture Decision Record
Fields:
- Decision Context (textarea) — Why are we deciding this?
- Options Considered (textarea) — Alternative approaches
- Chosen Option (textarea) — Decision and rationale
- Consequences & Tradeoffs (textarea) — What we gain/lose
- Standards & Guardrails (textarea) — Guidelines for implementation
- Rollback Strategy (textarea) — How to undo if needed
- Linked Issues (textarea) — Epic/Feature/Task it affects
bug.yml — Bug Report
Fields:
- Observed Behavior (textarea) — What happened?
- Expected Behavior (textarea) — What should happen?
- Reproduction Steps (textarea) — How to recreate
- Severity (dropdown) — Critical, High, Medium, Low
- Impacted Scope (textarea) — Which components/users?
- Fix AC (textarea) — What verification confirms the fix?
.github/labels.yml
Declarative label definitions. 17 labels pre-defined:
type:epic — High-level capability
type:feature — Stakeholder-visible functionality
type:task — Implementation work unit
type:architecture — Cross-cutting decision
type:bug — Unexpected behavior / defect
phase:discovery — Research, exploration
phase:specification — Design, requirements
phase:planning — Breaking into tasks, scheduling
phase:implementation — Active development
phase:verification — Testing, review, release
status:triage — New, not reviewed
status:ready — Reviewed, ready to start
status:in-progress — Active work
status:blocked — Waiting on dependency
status:review — Done, awaiting approval
status:done — Complete, verified, closed
priority:p0 — Critical path
priority:p1 — High priority
priority:p2 — Normal priority
priority:p3 — Low priority
Use setup-labels.ps1 to sync all labels to the repository.
.vscode/mcp.json
MCP Server configuration for VS Code Copilot Chat.
{
"mcpServers": {
"github": {
"command": "gh",
"args": ["api", "mcp"],
"env": {}
},
"github-copilot-spaces": {
"command": "gh",
"args": ["api", "mcp", "copilot_spaces"],
"env": {}
}
}
}
This enables:
githubMCP: Create/update/query GitHub issues, repos, projectsgithub-copilot-spacesMCP: Load solution context from Copilot Space
config/workflow-mode.yml
Selector for execution mode (default: issues-first).
mode: issues-first # Options: issues-first, hybrid, markdown-first
behavior:
create_issues: true
create_markdown: false
require_parent_links: true
require_acceptance_criteria: true
enforce_label_taxonomy: true
.github/instructions/
Copilot agent instructions that control AI behavior in this repo.
issues-first.instructions.md — Always-on rules
applyTo: "**"
---
Use issues-first workflow. Create GitHub Issues for all work.
Labels: type:epic, type:feature, type:task, type:architecture, type:bug
Phases: phase:discovery → specification → planning → implementation → verification
spec-kit.instructions.md — spec-kit setup and usage
applyTo: "**"
---
Use spec-kit CLI commands (speckit.*) to create issues.
All five commands documented.
mode-switch.instructions.md — Read workflow-mode config before planning
applyTo: "**"
---
Before creating work items, read config/workflow-mode.yml to understand repo behavior mode.
scripts/setup-labels.ps1
PowerShell script to sync all 17 labels to the repository.
.\scripts\setup-labels.ps1 -Repo "TanureLabOrg/frontend"
scripts/setup-speckit.ps1
PowerShell script to install spec-kit CLI and gh-issues extension.
.\scripts\setup-speckit.ps1
Component 2: hackathon-central-template
What it is: Reusable template for the central orchestration repository (one per organization).
Key Files
solution.yml
Single source of truth for solution topology and governance.
solution:
name: "Hackathon 2026"
description: "Spec-driven issues-first workshop"
owner_org: "TanureLabOrg"
owner_email: "facilitator@example.com"
governance:
workflow_mode_default: "issues-first"
required_labels:
- "type:*"
- "phase:*"
- "status:*"
label_enforcement: "strict" # strict | advisory | none
copilot_space:
name: "Hackathon 2026 Workspace"
id: "cu_1A2B3C4D5E6F..."
context_file_path: ".context/solution-context.md"
repositories:
- name: "frontend"
purpose: "Web UI & client"
url: "https://github.com/TanureLabOrg/frontend"
owner_team: "frontend-team"
labels_prefix: "fe:" # Optional
- name: "backend"
purpose: "API & services"
url: "https://github.com/TanureLabOrg/backend"
owner_team: "backend-team"
labels_prefix: "be:"
- name: "infra"
purpose: "DevOps & infrastructure"
url: "https://github.com/TanureLabOrg/infra"
owner_team: "infra-team"
labels_prefix: "infra:"
project:
name: "Hackathon 2026 Board"
id: "3"
url: "https://github.com/orgs/TanureLabOrg/projects/3"
description: "Cross-repo project dashboard"
custom_fields:
- name: "Type"
type: "single_select"
options: ["Epic", "Feature", "Task", "Architecture", "Bug"]
- name: "Phase"
type: "single_select"
options: ["Discovery", "Specification", "Planning", "Implementation", "Verification"]
- name: "Status"
type: "single_select"
options: ["Triage", "Ready", "In Progress", "Blocked", "Review", "Done"]
- name: "Repository"
type: "single_select"
options: ["Frontend", "Backend", "Infra"]
- name: "Priority"
type: "single_select"
options: ["P0", "P1", "P2", "P3"]
wiki-source/
Shared baseline documentation — NOT the final destination.
Features:
- Versioned in git
- Shared across all repos
- Synced to each repo’s wiki via automation (CI/CD)
Content examples:
wiki-source/shared/Home.md— Solution overviewwiki-source/shared/Architecture-Guidelines.md— Design principleswiki-source/shared/API-Standards.md— Contract specifications
.github/instructions/
Agent instructions for central repository.
spec-kit-agents.instructions.md — Comprehensive spec-kit agent guide
applyTo: "**"
---
Covers: Installation, Copilot Spaces integration, issues-over-markdown,
all 5 commands, GitHub Project mapping, label taxonomy, cross-repo planning.
governance.instructions.md — Governance enforcement
applyTo: "**"
---
Enforces: solution.yml as source of truth, issues-first planning,
parent-child traceability, label consistency.
wiki-policy.instructions.md — Wiki source policy
applyTo: "wiki-source/**,scripts/**"
---
Clarifies: wiki-source/ is shared baseline, NOT final destination.
Each repo's wiki is final destination.
AGENTS.md
Central agent instructions focused on spec-kit and solution orchestration.
Component 3: spec-kit-gh-issues Extension
What it is: Spec-Kit CLI extension for issues-first planning.
The Five Commands
speckit.spec
Creates: Epic issue + optional Architecture issue
Use when: User describes a new capability or problem
Inputs:
Problem statement
Users/personas
Desired outcomes
Non-functional requirements
Scope boundaries
Risks
Outputs:
- Epic issue with all inputs as acceptance criteria
- Labels:
type:epic,phase:discovery,status:triage - Optional: Architecture issue if cross-cutting concerns identified
- Spec-kit embedded:
<!-- spec-kit-id: epic-auth-oauth -->
Example:
Input: "We need user authentication with OAuth"
Output: Epic #42: "User Authentication: OAuth Integration"
speckit.plan
Creates: Feature issues linked to parent Epic
Use when: Epic is refined and ready for breakdown
Inputs:
Epic issue number (e.g., Epic#42)
Feature list with descriptions
Outputs:
- Multiple Feature issues
- Each linked to parent Epic in issue body
- Labels:
type:feature,phase:specification,status:triage - Each with spec-kit-id for idempotency
Example:
Input: Epic#42, Features: [OAuth Config, Login UI, Session Management]
Output: Feature #43, #44, #45 (all linked to Epic#42)
speckit.tasks
Creates: Task issues with DoD checklists
Use when: Feature is approved and ready for implementation
Inputs:
Feature issue number (e.g., Feature#43)
Task list with descriptions
Outputs:
- Multiple Task issues
- Definition of Done returned as markdown checklist
- Each task linked to parent Feature
- Labels:
type:task,phase:planning,status:ready - Spec-kit-id for idempotency
Example:
Input: Feature#43 (OAuth Config), Tasks: [Research provider, Choose library, Implement config]
Output: Task #46, #47, #48 (all linked to Feature#43, with DoD checklists)
speckit.sync
Creates: Full spec → plan → tasks flow in one command
Use when: Kickoff with complete spec ready
Inputs:
Spec details (problem, users, outcomes, scope)
Feature list
Task breakdown per feature
Outputs:
- 1 Epic + N Features + M Tasks
- All linked in hierarchy
- All labeled correctly
- All on GitHub Project board
Example:
Input: Full specification with features and tasks
Output: Complete issue hierarchy ready to execute
Time: 2-3 minutes vs. 10+ minutes with manual steps
speckit.wiki-sync
Creates: Wiki source payload
Use when: Implementation milestone reached, documentation needed
Inputs:
Repo context (which repos to include)
Issue filter (which issues to document)
Outputs:
- Markdown files committed to
wiki-source/ - Ready for CI/CD to publish to each repo’s wiki
Component 4: GitHub Project
What it is: Cross-repository project dashboard with five custom fields.
Field Definitions
Type Field
- Purpose: Classify issue category
- Options: Epic, Feature, Task, Architecture, Bug
- Auto-populated: From
type:*label - Governance: Required per solution.yml
Phase Field
- Purpose: Track workflow stage
- Options: Discovery → Specification → Planning → Implementation → Verification
- Auto-populated: From
phase:*label - Lifecycle: Should flow left-to-right (Discovery → Verification)
Status Field
- Purpose: Track progress within a phase
- Options: Triage → Ready → In Progress → Blocked → Review → Done
- Auto-populated: From
status:*label -
Views: Group by Status to see progress (Ready In Progress Done columns)
Repository Field
- Purpose: Show which team owns the work
- Options: Frontend, Backend, Infra, Shared
- Auto-populated: From issue repo name
- Views: Group by Repository to see load distribution
Priority Field
- Purpose: Importance for sprint planning
- Options: P0, P1, P2, P3
- Auto-populated: From
priority:*label (if present) - Default: P1 (if not specified)
Standard Views
View 1: By Status
Groups issues by Status field.
Columns: Triage | Ready | In Progress | Blocked | Review | Done
Purpose: See sprint progress at a glance
Use by: Facilitator for standup, team for planning
View 2: By Repository
Groups issues by Repository field.
Columns: Frontend | Backend | Infra | Shared
Purpose: See load distribution per team
Use by: Facilitator to balance work, team leads for planning
View 3: Architecture Radar
Filtered view showing only Type=Architecture.
Purpose: Track all cross-cutting decisions
Use by: Architect, tech leads for coordination
Component 5: Copilot Spaces
What it is: Shared context hub for solution metadata.
What Goes in Space Context
Create .context/solution-context.md with:
# Hackathon 2026 Solution Context
## Solution Overview
Name: Hackathon 2026
Goal: Build spec-driven system using GitHub Issues
Duration: 90 minutes (or day-long variant)
## Teams
- Frontend: [Team names, Slack handles]
- Backend: [Team names, Slack handles]
- Infrastructure: [Team names, Slack handles]
## Architecture Principles
- Issues-first planning (no scattered markdown)
- Spec-kit for deterministic issue creation
- Single GitHub Project for cross-team visibility
- Copilot Spaces for shared context
## Key Links
- [GitHub Organization](https://github.com/TanureLabOrg)
- [Central Repository](https://github.com/TanureLabOrg/solution-central)
- [GitHub Project Board](https://github.com/orgs/TanureLabOrg/projects/3)
- [Facilitator Guide](#)
- [Participant Guide](#)
## Enterprise Trial (if applicable)
Account: trial@company.com
Password: [Shared securely]
Valid until: [Date]
Access: All Copilot Chat features
## Getting Help
- Question? Post in #hackathon Slack channel
- Stuck? Tag @facilitator
How Agents Use Space Context
- Agent loads Space context automatically when Space ID is known
- Agent reads: Solution name, team info, key links, enterprise trial status
- Agent infers: Project board location, central repo location, preferred labels
- Agent adapts spec-kit commands based on context (e.g., includes team name in issue title)
- Fallback: If Space unavailable, agent fetches context from central repo’s
solution.yml
Label Taxonomy — Complete Reference
How Labels Flow to Project Fields
| Label | Type | Maps To | Example |
|---|---|---|---|
type:epic |
prefix | Type field | Epic |
type:feature |
prefix | Type field | Feature |
type:task |
prefix | Type field | Task |
type:architecture |
prefix | Type field | Architecture |
type:bug |
prefix | Type field | Bug |
phase:discovery |
prefix | Phase field | Discovery |
phase:specification |
prefix | Phase field | Specification |
phase:planning |
prefix | Phase field | Planning |
phase:implementation |
prefix | Phase field | Implementation |
phase:verification |
prefix | Phase field | Verification |
status:triage |
prefix | Status field | Triage |
status:ready |
prefix | Status field | Ready |
status:in-progress |
prefix | Status field | In Progress |
status:blocked |
prefix | Status field | Blocked |
status:review |
prefix | Status field | Review |
status:done |
prefix | Status field | Done |
priority:p0 |
prefix | Priority field | P0 |
Typical Workflows
Workflow 1: Fast Kickoff (90 minutes)
- Minute 0–10: Facilitator frames problem
- Minute 10–20: Teams use
speckit.specto create Epic (1–2 per team) - Minute 20–40: Teams use
speckit.planto create Features (3–5 per Epic) - Minute 40–60: Teams use
speckit.tasksto create Tasks (5–10 per Feature) - Minute 60–90: Teams execute tasks, move issues on board, facilitator watches progress
- Minute 90°: Retrospective using
speckit.wiki-syncto document decisions
Workflow 2: Day-Long Workshop
- Morning (4 hours): Same as 90-minute above
- Lunch: Teams reflect
- Afternoon (4 hours):
- Add context with Architecture issues
- Execute tasks with code review
- Update GitHub Project in real-time
- Facilitate cross-team sync
- End-of-day: Demo what’s in “Done” column, retrospective, wiki sync
Workflow 3: Post-Workshop Continuation
- Teams continue work in their repositories
- spec-kit commands used for all planning
- GitHub Project board remains source of truth
- Facilitator (or rotating scrum master) runs weekly on-board reviews
- Wiki-sync runs at each milestone to document architecture decisions