Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!-- What problem does it solve or what feature does it add? -->
## Overview

<!-- Summarize the key changes in the Pull Request. -->
## Key Changes
- TBD: 1st key change of the PR
- TBD: 2nd key change of the PR

<!-- Add attached issue that this PR solves. -->
## Related
Closes #issue_number
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ its purpose, trigger phrases, and full instructions.

| Skill | Description |
|------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| **[create-repository](./skills/create-repository/)** | Creates and configures a GitHub repository under AbsaOSS (open source) or absa-group (internal). Runs a short interview, then shows an annotated `gh` command plan and executes it on confirmation — visibility, naming, admins, CODEOWNERS, labels, merge settings, and project links. |
| **[pr-review](./skills/pr-review/)** | Pull request code review — reviews diffs for risk, security issues, API contract changes, dependency bumps, CI/CD and infrastructure changes. Produces concise Blocker / Important / Nit comments. |
| **[tdd-workflow](./skills/tdd-workflow/)** | Test-driven development: upfront SPEC.md planning + confirmation gate (avoids batch design), then vertical-sliced implementation (one test → one code cycle at a time, not all tests then all code). |
| **[test-data-management](./skills/test-data-management/)** | Test data setup and management — factory functions, parametrised tests, deterministic seeds, fixture reuse, and production-data rules for unit and integration tests. |
Expand Down
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Navigation hub for all guides in this repository. Browse by category below.

| Guide | Description |
|----|----|
| [Create Repository](./create-repository.md) | Creating a new AbsaOSS/absa-group repo from the template with standard guardrails |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

  • Is the skill limited just to these two organizations?
    • If it is - it is well described.
    • If it is not the intention, then there is a gap - at least the access to cps-* template repo.
  • The skill is in OSS repo, so the skill should support 3rd party organizations. But it can just my feeling.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

The skill is limited only for our two GH organizations (absa-group and AbsaOSS). Understand your point, but the whole skill/interview is precisely made for creation of the Absa repositories. This skill is for the Absa CPS ecosystem. We choose the OSS, because it does not store any intern information. There are some colleagues that use their own laptops to work also on the OSS repos, so it can be used in that scenario for example.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

There is option also to rename the whole skill to be /create-absa-repository.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No, keep it as it is. The future will show us if change will be needed. Comment resolved, kept open.

| [PR Review](./pr-review.md) | How the PR review skill works, what sections it applies, and how to trigger it |
| [TDD Workflow](./tdd-workflow.md) | Test-driven development with: specification, confirmation gates, and vertical-sliced implementation |
| [Test Data Management](./test-data-management.md) | How the test-data-management skill works, what it covers, and when it fires |
Expand Down
69 changes: 69 additions & 0 deletions docs/create-repository.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Create Repository Skill

The `create-repository` skill creates and configures a brand-new GitHub repository under the Absa
organizations — **AbsaOSS** (open source) or **absa-group** (internal) from the shared
`cps-repository-template`. It applies the standard Absa CPS guardrails so every new repo starts consistent.

---

## What it does

It runs a short interactive flow and never makes changes until you confirm:

**interview → plan → confirm once → execute → report**

| Phase | What happens |
|-------|---------------------------------------------------------------------------------------------------------------|
| Interview | Asks a fixed set of short questions (visibility, name, admins, code owners, labels, auto-delete, project link) |
| Plan | Shows the exact annotated `gh` commands it will run |
| Confirm | You approve the plan once |
| Execute | Runs the approved commands verbatim, best-effort |
| Report | Prints a results table with the repo URL and what was copied from the template |

The repo is created from `absa-group/cps-repository-template`, which brings a README, CONTRIBUTING,
and the `.github/` folder (workflows, dependabot, issue/PR templates, and an empty CODEOWNERS).

Template link: [absa-group/cps-repository-template](https://github.com/absa-group/cps-repository-template)
c
---

## What it always applies

| Item | OSS (`AbsaOSS`) | Internal (`absa-group`) |
|------|-----------------|--------------------------|
| Created from `cps-repository-template` | ✓ | ✓ |
| Apache-2.0 license | ✓ | — (proprietary) |
| Populated CODEOWNERS | ✓ | — (template's empty file) |
| Standard Absa label taxonomy | ✓ | ✓ |
| Core Branches ruleset | ✓ | ✓ |
| Auto-delete branches on merge | ✓ | ✓ |
| Custom properties | — | ✓ |
| Project link(s) | — (cross-org not allowed) | optional |

---

## How to trigger it

Ask to create a repository. You don't have to say "repository" explicitly:

> "Create a new open-source repo under AbsaOSS called telemetry-exporter."
> "Spin up a repo for internal use called event-gate."
> "Set up a new codebase under absa-group."

It does **not** activate for modifying an existing repo (adding a single label, creating branches, PRs,
issues, or workflow files, or cloning).

---

## Notes

- Requires an authenticated GitHub CLI (`gh auth status`) as a member of the target org with permission
to create repositories. The orgs enforce SAML SSO — if a call is rejected mid-run, the skill keeps your
answers and tells you how to authorize and resume.
- If a step fails, the skill reports it and prints the commands to finish the steps manually.

---

## Installation

See [Getting Started](./getting-started.md) for the full install guide.
18 changes: 18 additions & 0 deletions skills/create-repository-workspace/trigger-eval.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
[
{"query": "spin up a new github repo under AbsaOSS for our new data-gateway service, public, I'll be admin", "should_trigger": true},
{"query": "I need a new project/codebase set up in absa-group for internal billing reconciliation", "should_trigger": true},
{"query": "make me a repo called schema-standards and add the standard ABSA labels", "should_trigger": true},
{"query": "scaffold a repository for the aquasec scan results, open source", "should_trigger": true},
{"query": "we're starting a new microservice, can you create the github repo and set codeowners + auto-delete branches", "should_trigger": true},
{"query": "new internal repo, link it to absa-group project 88 and make asmith admin", "should_trigger": true},
{"query": "create a repository for EventGate under our org", "should_trigger": true},
{"query": "set up a fresh repo with our recommended label taxonomy and an admin", "should_trigger": true},
{"query": "create an issue for the login bug in our api repo", "should_trigger": false},
{"query": "open a pull request from my feature branch", "should_trigger": false},
{"query": "create a new branch called feature/auth in this repo", "should_trigger": false},
{"query": "clone the absa-group/data-platform repo locally", "should_trigger": false},
{"query": "add a new label called hotfix to this existing repo", "should_trigger": false},
{"query": "init a git repo in my current local folder", "should_trigger": false},
{"query": "give bob admin access to our existing payments repo", "should_trigger": false},
{"query": "create a new GitHub Actions workflow file in the repo", "should_trigger": false}
]
Loading