Skip to content

LiaPlayground/spec-driven-development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

Spec-Driven-Development

BMAD-METHOD

BMAD steht für "Breakthrough Method for Agile AI-Driven Development".

Entwickler: Brian Madison

Projekt: https://github.com/bmad-code-org/BMAD-METHOD

Die BMAD‑METHOD lässt sich wie folgt in fünf Sätzen zusammenfassen:

{{1}} BMAD organisiert die Software- bzw. AI-Entwicklung als strukturierte, vierphasige Methodik: Analyse, Planung, Lösungsausarbeitung und Umsetzung – statt chaotischem Prompt-Hacking.

{{2}} Es setzt auf ein Team spezialisierter KI-Agenten (z. B. Analyst, Produktmanager, Architekt, Entwickler, QA), die jeweils klar definierte Rollen übernehmen und untereinander Artefakte (wie PRDs, Architektur-Docs und Stories) erzeugen und übergeben.

{{3}} Kernidee ist ein "spec-driven" Ansatz – d. h., Spezifikationen werden früh erstellt und versioniert, bevor Code geschrieben wird, um Konsistenz, Nachvollziehbarkeit und Skalierbarkeit zu sichern.

{{4}} Der Workflow passt sich automatisch an den Projektumfang an – von kleinen Fehlerbehebungen bis hin zu komplexen Enterprise-Systemen – und sorgt so für Effizienz auch in großen Teams.

{{5}} BMAD erleichtert die Zusammenarbeit zwischen Menschen und KI, indem es Wissen, Rollen und Prozesse standardisiert – wodurch das Risiko von Kontextverlust, Wildwuchs oder unkontrolliertem AI-Output reduziert wird.

Rollen

{{1}} Agents: spezialisierte KI-Instanzen mit klar definierten Rollen und Verantwortlichkeiten.

{{2}} Templates / Artefakte: vordefinierte Strukturen für Dokumente, Code-Snippets oder andere Outputs.

{{3}} Tasks: definierte Arbeitseinheiten oder Aktivitäten, die von Agents ausgeführt werden.

{{4}} Data: strukturierte Informationen oder Ressourcen, die im Entwicklungsprozess verwendet werden.

{{5}} Workflows: festgelegte Abläufe oder Prozesse, die die Zusammenarbeit und den Fortschritt steuern.

🤖 Agents

--{{0}}--

Ein Agent ist eine spezialisierte KI-Instanz, die eine bestimmte Rolle oder Funktion innerhalb des Entwicklungsprozesses übernimmt. Jeder Agent ist darauf ausgelegt, spezifische Aufgaben zu erfüllen, die auf den Anforderungen des Projekts basieren, mit definierten Eingaben, Ausgaben und Verhaltensweisen.

agent:
  name: Teaching-Agent
  id: teaching-agent
  title: Lecture Builder & Didactics Assistant
  icon: 🎓
  whenToUse: "Develop new lectures, plan didactics, structure sessions, prepare materials."

persona:
  role: "Teaching Planner & Supporter"
  style: "clear, structured, friendly, supportive, dialog-oriented"
  identity: >
    Supports educators in creating lectures through outline, didactics, agenda, sessions, and materials.
    Asks targeted questions when information is missing or unclear, and suggests options to fill gaps.
  focus: "Structured lecture development, didactics, material planning, interactive support"
  core_principles:
    - "Always ask if information is missing"
    - "Suggest options when decisions are open"
    - "Give feedback on whether a step is complete before moving to the next"
    - ....
    - "Use numbered options"
    - "STAY IN CHARACTER!"

customization: null

commands:
  - `/create-outline`: run task `tasks/create-outline.md` with `templates/lecture-outline-template.yaml`
  - ...
  - `/help`: Show available actions
  - `/exit`: Say goodbye and abandon persona

dependencies:
  tasks:
    - create-outline.md
    - ...
  templates:
    - lecture-outline-template.yaml
    - ...
  checklists:
    - lecture-quality-checklist.md
  data:
    - liascript-cheat-sheet.md

activation-instructions:
  - ONLY load dependency files when explicitly invoked
  - The agent.customization field ALWAYS takes precedence
  - Always show numbered lists for options
  - Always clarify missing inputs with follow-up questions
  - STAY IN CHARACTER!

fuzzy-matching:
  - 85% confidence threshold
  - Show numbered list if unsure

🧩 Templates / Artefakte

--{{0}}--

Ein Template ist eine vordefinierte Struktur oder ein Format, das als Vorlage für die Erstellung von Dokumenten, Code-Snippets oder anderen Outputs dient. Templates helfen dabei, Konsistenz und Standardisierung im Entwicklungsprozess zu gewährleisten, indem sie klare Anweisungen und Platzhalter für erforderliche Informationen bereitstellen.

template:
  id: lecture-outline-template
  name: 'Lecture Outline'
  version: 1.0
  output:
    format: markdown
    filename: docs/lecture-outline.md
  title: 'Lecture Outline'
  sections:
    - id: title
      title: Title
      template: 'Name of the lecture or course'
    - id: audience
      title: Target Audience
      template: 'Who is this course/lecture for?'
    - id: logo
      title: Logo (optional)
    ...

📋 Tasks

--{{0}}--

Eine Task ist eine definierte Arbeitseinheit oder Aktivität, die von einem Agenten ausgeführt wird. Jede Task hat spezifische Eingaben, Ausgaben und Schritte, die klar beschreiben, wie die Aufgabe zu erfüllen ist. Tasks dienen dazu, den Entwicklungsprozess zu strukturieren und sicherzustellen, dass alle erforderlichen Schritte systematisch abgearbeitet werden.

# Task: create-didactics
## Purpose

Creates the document Lecture Didactics & Style.
Defines the didactic concept, professor persona, style, and course type of the lecture.
Builds on the Lecture Outline to ensure a consistent teaching strategy.

## Inputs

- Abstract from `docs/lecture-outline.md`
- Target audience from `docs/lecture-outline.md`
- Learning objectives from `docs/lecture-outline.md`

## Output

- `docs/lecture-didactics.md` (Markdown file)
- Structure based on `templates/lecture-didactics-template.yaml`

## Steps

1. Read abstract, target audience, time commitment, and learning objectives from the outline.
2. Design a suitable didactic concept (teaching methods, learning phases).
3. Describe the professor persona (expertise, role, style).
4. Define style & difficulty level (humorous, scientific, practical, etc.).
5. Set the course type (introductory, advanced, practice-oriented, group work, self-learning).
6. Fill the `templates/lecture-didactics-template.yaml` template with the results.
7. Save the file as `docs/lecture-didactics.md`.

📚 Data

--{{0}}--

Dateien im Bereich "Data" enthalten strukturierte Informationen oder Ressourcen, die von Agents im Entwicklungsprozess verwendet werden können. Diese Daten dienen als Referenz, Wissensbasis oder Input für verschiedene Aufgaben und helfen dabei, den Entwicklungsprozess zu unterstützen und zu verbessern.

# LiaScript Guide – Syntax, Semantics & Best Practices

## Purpose

A compact reference guide for agents to produce **syntactically and semantically correct LiaScript**.

## 1) Course Metadata (Header)

```lia
<!--
author:   Firstname Lastname
email:    user@example.org
version:  1.0.0
language: en
narrator: English Female
comment:  Short description of the course
-->
```

**Notes**

- `language` and `narrator` define TTS/voice output.
- `comment` may be used as an abstract or summary.


## 2) Structure: Headings & Sections

```lia
# Main Title (Course Title Page)
## Section
### Subsection
```

**Rules**

- Only one `#` heading per file (the course title).
- Use hierarchical structure logically; avoid “jumps” in heading levels.

...

🛤️ – Workflow/Schrittfolge

--{{0}}--

Ein Workflow ist ein festgelegter Ablauf oder Prozess, der die Zusammenarbeit und den Fortschritt im Entwicklungsprojekt steuert. Workflows definieren die Reihenfolge der Aufgaben, die Interaktionen zwischen verschiedenen Agents und die Übergabe von Artefakten. Sie helfen dabei, den Entwicklungsprozess zu organisieren und sicherzustellen, dass alle Beteiligten effizient zusammenarbeiten.

workflow:
  id: software-development-workflow
  name: Software Development Workflow
  description: A structured workflow for software development projects using BMAD-METHOD.
  phases:
    - id: analysis
      name: Analysis Phase
      description: Gather requirements, define scope, and create initial specifications.
      agents:
        - business-analyst
        - product-manager
      tasks:
        - gather-requirements
        - define-scope
        - create-initial-specifications
    - id: planning
      name: Planning Phase
      description: Develop project plan, allocate resources, and set timelines.
      agents:
        - project-manager
        - technical-lead
      tasks:
        - develop-project-plan
        - allocate-resources
        - set-timelines

Bundles

--{{0}}--

Bundles sind vordefinierte Sammlungen von Agenten, Templates, Tasks und Workflows, die zusammen eine spezifische Funktionalität oder einen Anwendungsfall abdecken. Sie ermöglichen es, komplexe Entwicklungsprozesse schnell zu starten, indem sie alle notwendigen Komponenten in einem Paket bereitstellen.

https://raw.githubusercontent.com/LiaScript/teaching-agent/refs/heads/main/.github/copilot-instructions.md

Teaching-Agent

Vorbereitung

  1. VSCode (Visual Studio Code) Editor installieren

    https://code.visualstudio.com/

  2. Kostenloser GitHub-Copilot-Account:

    https://docs.github.com/en/education/about-github-education/github-education-for-teachers/apply-to-github-education-as-a-teacher

  3. Neues Projekt anlegen und die Teaching-Agent Konfiguration in .github/copilot-instructions.md speichern.

    https://github.com/liascript/teaching-agent

  4. Copilot Chat öffnen (Strg+Shift+P → "GitHub Copilot: Chat öffnen").

  5. Claude AI im Agenten-Modus auswählen.

  6. Teaching-Agent Persona laden:

    @teaching-agent /help

🎓 Teaching-Agent Workflow

flowchart TD
    A[Phase 1: FOUNDATION<br/>/create-outline:<br/>Define scope, audience, objectives]
    B[Phase 2: DIDACTICS<br/>/create-didactics:<br/>Design teaching approach & persona]
    C[Phase 3: PLANNING<br/>/create-agenda:<br/>Structure sessions & timeline]
    D[Phase 4: DEVELOPMENT<br/>/create-session:<br/>Build session skeletons<br/>/promote-session:<br/>Expand into full materials<br/>/coauthor-materials:<br/>Collaborate on content]
    E[Phase 5: FINALIZATION<br/>/validate-lecture:<br/>Check consistency<br/>/assemble-bundle:<br/>Package everything]

    A --> B --> C --> D --> E
Loading