Repository-local Copilot CLI skills and agents tailored for the q24 DevOps Engineer assignment.
This pack provides skill-first execution for completing Tasks 2-6 of the q24 DevOps assignment:
- Task 2: Infrastructure as Code (Terraform + Helm → GitOps)
- Task 3: Application Containerization (Multi-stage Dockerfile)
- Task 4: CI/CD Pipeline (GitHub Actions + GHCR)
- Task 5: Kubernetes Deployment (Helm chart with PostgreSQL)
- Task 6: Scripting (Sunrise/sunset office lights)
All artifacts are versioned in this repository under .github/skills/ and .github/agents/.
| Skill | Purpose | Task |
|---|---|---|
| q24-terraform-generator | Generate Terraform for GitOps deployment | Task 2 |
| q24-terraform-validator | Validate Terraform configuration | Task 2 |
| q24-dockerfile-generator | Generate multi-stage Dockerfile for Task API | Task 3 |
| q24-dockerfile-validator | Validate Dockerfile best practices | Task 3 |
| q24-github-actions-generator | Generate CI workflow for Docker builds | Task 4 |
| q24-github-actions-validator | Validate GitHub Actions workflow | Task 4 |
| q24-helm-generator | Generate Helm chart for K8s deployment | Task 5 |
| q24-helm-validator | Validate Helm chart configuration | Task 5 |
| q24-k8s-debug | Debug Kubernetes deployment issues | Task 5 |
| q24-task6-script | Generate sunrise/sunset lights script | Task 6 |
| Agent | Expertise | Uses Skills |
|---|---|---|
| q24-devops-orchestrator | Meta-agent coordinating entire assignment | All (via task delegation) |
| q24-terraform-engineer | IaC specialist for Task 2 | terraform-generator, terraform-validator |
| q24-ci-engineer | CI/CD specialist for Task 4 | github-actions-generator, github-actions-validator |
| q24-kubernetes-specialist | K8s specialist for Task 5 | helm-generator, helm-validator, k8s-debug |
Each task follows a generator → validator → fix loop:
User Request
↓
[Generator Skill] → Creates artifacts
↓
[Validator Skill] → Checks quality
↓
Errors? → Fix → Re-validate (max 3 iterations)
↓
Success → Log & Deliver
The q24-devops-orchestrator coordinates task execution:
Orchestrator
├─→ Task 2 → q24-terraform-engineer
├─→ Task 3 → Direct skill usage (dockerfile-generator)
├─→ Task 4 → q24-ci-engineer
├─→ Task 5 → q24-kubernetes-specialist
└─→ Task 6 → Direct skill usage (task6-script)
Adapted from:
- Claude Code DevOps Skills (
/tmp/cc-devops-skills-inspect/) - Dockerfile, Helm, GitHub Actions patterns - Terraform Skill (
/tmp/terraform-skill-inspect/) - Terraform best practices and validation - Awesome Claude Subagents (
/tmp/awesome-subagents-inspect/) - Infrastructure agent patterns
All sources adapted to:
- Copilot CLI frontmatter format
- Assignment-specific requirements (k3d, Spring Boot, GitOps)
- Generator → validator pattern
- Logging requirements (AI_assistance_log.md, decision_log.md)
Option 1: Orchestrator (Recommended)
> Start q24 DevOps assignment from Task 2
Invokes q24-devops-orchestrator which coordinates all tasks.
Option 2: Task-Specific Agents
> Generate Terraform for Task 2 (q24-terraform-engineer)
> Create Dockerfile for Task 3 (q24-dockerfile-generator skill)
> Set up CI/CD for Task 4 (q24-ci-engineer)
> Deploy to Kubernetes for Task 5 (q24-kubernetes-specialist)
> Create lights script for Task 6 (q24-task6-script skill)
Option 3: Direct Skill Invocation
> Use q24-terraform-generator to create IaC for ArgoCD deployment
> Use q24-dockerfile-generator for Spring Boot containerization
> Use q24-helm-generator for multi-environment Helm chart
- User: "Generate Terraform for Task 2"
- Copilot CLI: Invokes
q24-terraform-engineeragent - Agent:
- Scans README.md for Task 2 requirements
- Calls
q24-terraform-generatorskill - Generator creates files in
iac/ - Calls
q24-terraform-validatorskill - Validator runs
terraform validate, security scans - If errors: fix → re-validate (max 3 iterations)
- Logs work in
AI_assistance_log.md - Documents GitOps choice in
decision_log.md
- Deliverable: Complete
iac/directory ready forterraform apply
All skills and agents enforce logging:
Records skill usage, results, and updates:
## Task [N]: [Name]
**Skill Used:** [skill-name]
**Result:** [Success/Partial/Failed]
**Files Created:** [list]
**Validation:** [Pass/Fail]
**Skill Updates:** [improvements made]Documents all decisions:
## [Decision Title]
**Task:** Task [N]
**Options Considered:** [A, B, C]
**Decision:** [Selected]
**Rationale:** [Why]
**Implications:** [Impact]q24devops/
├── .github/
│ ├── skills/
│ │ ├── q24-terraform-generator/SKILL.md
│ │ ├── q24-terraform-validator/SKILL.md
│ │ ├── q24-dockerfile-generator/SKILL.md
│ │ ├── q24-dockerfile-validator/SKILL.md
│ │ ├── q24-github-actions-generator/SKILL.md
│ │ ├── q24-github-actions-validator/SKILL.md
│ │ ├── q24-helm-generator/SKILL.md
│ │ ├── q24-helm-validator/SKILL.md
│ │ ├── q24-k8s-debug/SKILL.md
│ │ └── q24-task6-script/SKILL.md
│ └── agents/
│ ├── q24-devops-orchestrator.agent.md
│ ├── q24-terraform-engineer.agent.md
│ ├── q24-ci-engineer.agent.md
│ └── q24-kubernetes-specialist.agent.md
├── README.md # Assignment requirements (authoritative)
├── AI_assistance_log.md # Skill usage tracking
├── decision_log.md # Decision documentation
├── iac/ # Task 2 deliverables (Terraform)
├── taskapi/ # Task 3 deliverables (Dockerfile)
├── .github/workflows/ # Task 4 deliverables (CI/CD)
├── k8s/ # Task 5 deliverables (Helm)
└── scripts/ # Task 6 deliverables (Lights script)
- Skills use frontmatter:
name,description(nomodelortoolsin skills) - Agents use frontmatter:
name,description,model,tools,category, optionalskill - All content is Markdown with practical code examples
- Tight focus: Only Tasks 2-6 (Task 1 is documentation only)
- No generic DevOps: Skills don't cover unrelated infrastructure domains
- K3d optimized: Resource limits, storage classes, and patterns for local development
- Spring Boot specific: Actuator health endpoints, JDK/JRE multi-stage builds
- Every generator has a matching validator
- Validators are called automatically by generators
- Iterative fixing with max 3 iterations
- Validation failures are logged and reported
- All agents/skills enforce logging in AI_assistance_log.md
- All decisions documented in decision_log.md
- Timestamps in ISO 8601 format
- Clear success/failure status
- Skill updates tracked
- Helm values for dev/acc/prd
- Different resource limits per environment
- Tag strategy aligns: latest (dev), main-* (acc), v*.. (prd)
- Secrets handled differently per environment
Each task has clear success criteria:
Task 2 (IaC):
- ✅
terraform validatepasses - ✅ GitOps tool choice documented
- ✅ README explains setup
Task 3 (Docker):
- ✅ Multi-stage build (JDK + JRE)
- ✅ HEALTHCHECK present
- ✅ Non-root user
- ✅
docker buildsucceeds
Task 4 (CI/CD):
- ✅ Workflow triggers on push/PR
- ✅ GHCR push configured
- ✅ Multi-platform builds
- ✅ Tagging strategy implemented
Task 5 (K8s):
- ✅ Helm chart lints successfully
- ✅ Multi-environment values
- ✅ PostgreSQL StatefulSet + PVC
- ✅ Health probes configured
Task 6 (Script):
- ✅ Outputs exactly "ON" or "OFF"
- ✅ Edge cases tested (sunrise, sunset, midnight, DST)
- ✅ Test suite passes
After generation, users must customize:
- Image repository: Replace
CHANGEMEwith GitHub username in values.yaml - Secrets: Update database passwords (don't commit production secrets)
- Resource limits: Adjust for actual k3d cluster capacity
- Git repository: Ensure correct remote URL for GHCR
Skills not loading?
- Restart Copilot CLI to reload skills/agents from
.github/
Validation failures?
- Check tool availability:
terraform,docker,helm,kubectl - Generator → validator loop will auto-fix most issues
- Check logs in AI_assistance_log.md for details
Agent not executing?
- Ensure clear task description in prompt
- Reference agent by name: "Use q24-terraform-engineer"
- Check agent frontmatter for correct
toolslist
To extend this pack:
- Add new skill under
.github/skills/<skill-name>/SKILL.md - Use Copilot CLI frontmatter format
- Follow generator → validator pattern where applicable
- Update this README with new skill/agent
- Test with assignment workflow
This skill+agent pack is specific to the q24 DevOps assignment repository. Source materials adapted under their respective licenses (Apache-2.0, MIT).
v1.0.0 - Initial release for q24 DevOps assignment Created: 2024-04-07 Last Updated: 2024-04-07