auth
無料Authentication and authorization patterns for Rossoctl services
日本語の概要は準備中です。原文の説明を表示しています。
Test-driven development workflows for Rossoctl - CI, HyperShift, and Kind
日本語の概要は準備中です。原文の説明を表示しています。
実行スコア 未検証
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
flowchart TD
START(["/tdd"]) --> INPUT{"What input?"}
INPUT -->|GH Issue URL| ISSUE[Flow 1: Issue-First]
INPUT -->|GH PR URL| PR[Flow 2: PR-First]
INPUT -->|Local doc/task| LOCAL[Flow 3: Local-First]
INPUT -->|Nothing| DETECT{Detect cluster}
ISSUE --> ANALYZE[Read issue + conversation]
ANALYZE --> CHECKPR{"Existing PR?"}
CHECKPR -->|Own PR| PR
CHECKPR -->|Other's PR| FORK{Fork or comment?}
CHECKPR -->|No PR| RESEARCH["rca + plan + post to issue"]:::rca
FORK --> RESEARCH
RESEARCH --> WORKTREE["git:worktree"]:::git
WORKTREE --> TDDCI
PR --> RCACI["rca:ci"]:::rca
RCACI --> TDDCI["tdd:ci"]:::tdd
TDDCI -->|"3+ failures"| HS["tdd:hypershift"]:::tdd
TDDCI -->|CI green| REVIEWS[Handle PR reviews]
LOCAL --> KIND["tdd:kind"]:::tdd
KIND -->|Tests pass| MOVETOPR[Create issue + PR]
MOVETOPR --> PR
DETECT -->|HyperShift| HS
DETECT -->|Kind| KIND
DETECT -->|None| TDDCI
HS -->|CI green| REVIEWS
REVIEWS -->|Changes needed| TDDCI
REVIEWS -->|Approved| DONE([Merged])
classDef tdd fill:#4CAF50,stroke:#333,color:white
classDef rca fill:#FF5722,stroke:#333,color:white
classDef git fill:#FF9800,stroke:#333,color:white
Follow this diagram as the workflow.
Test-driven development workflows for iterative Rossoctl development.
When /tdd is invoked, determine the entry point:
What was provided?
│
├─ GitHub issue URL → Flow 1: Issue-First
├─ GitHub PR URL → Flow 2: PR-First
├─ Local doc/task → Flow 3: Local-First
└─ Nothing → Detect cluster, pick tdd:ci/kind/hypershift
Debug mode is only activated when /tdd is invoked as /tdd --debug <issue|PR|doc>.
When active, the workflow visually tracks progress through the diagram, highlighting the current node and showing edge traversal counts.
mkdir -p /tmp/rossoctl/tdd/
/tmp/rossoctl/tdd/tdd-debug-state.json automatically.Run the debug diagram script to update the visual:
python3 .claude/scripts/tdd-debug-diagram.py \
--template .claude/skills/tdd/tdd-workflow.mmd \
--current-node <NODE_ID> \
--edge-counts '{"<FROM>-><TO>": <count>, ...}' \
--output /tmp/rossoctl/tdd/debug-diagram.mmd
Node IDs match the diagram: START, INPUT, ISSUE, PR, LOCAL, DETECT, ANALYZE, CHECKPR, FORK, RESEARCH, WORKTREE, RCACI, TDDCI, HS, KIND, MOVETOPR, REVIEWS, DONE.
The script maintains /tmp/rossoctl/tdd/tdd-debug-state.json with:
current_node - where in the workflow we are nowedge_counts - how many times each edge has been traversedhistory - ordered list of nodes visited with timestampsWhen debug mode is active and the workflow enters a sub-skill (tdd:ci, tdd:kind, tdd:hypershift), pass the debug flag through:
.mmd template (e.g., .claude/skills/tdd:ci/tdd-ci-workflow.mmd)/tmp/rossoctl/tdd/tdd-debug-state.json with the sub-skill's node transitionstdd-workflow.mmdAfter each script invocation, report to the user:
/tdd <GH issue URL>Read the issue body and full conversation thread to understand:
gh pr list --repo rossoctl/rossoctl --state open --search "<issue-number>"
gh pr list --repo rossoctl/rossoctl --state closed --search "<issue-number>" --limit 5
Existing PR found?
│
├─ YES, owned by current gh user
│ → Jump to Flow 2 (/tdd <that PR URL>)
│
├─ YES, owned by someone else
│ → Offer options:
│ a) Start new PR taking their branch as base
│ (cherry-pick approach — our commits can be
│ picked by the original author)
│ b) Comment on their PR with analysis/fix suggestions
│ (include git commands for them to cherry-pick)
│ → If option a: create worktree from their branch
│
└─ NO existing PR
→ Continue to Step 4
Before writing ANY code:
git worktree add .worktrees/<name> -b fix/<slug>-<number> upstream/main
Then enter the TDD loop (see "TDD Code Loop" below).
/tdd <GH PR URL>gh pr view <number> --json author,state,reviewDecision,statusCheckRollup,mergeable,body,comments
Check ownership:
gh api user --jq '.login'
PR owned by current gh user?
│
├─ YES → Step 3 (work directly on the PR)
│
└─ NO → Offer options:
a) Fork their branch into new PR, comment original
with cherry-pick instructions for the fix
b) Just comment with analysis/suggestions
→ If option a: create worktree from their branch
Run rca:ci on failures, then tdd:ci fix loop.
Escalate to tdd:hypershift after 3+ CI failures.
gh api repos/rossoctl/rossoctl/pulls/<number>/comments
gh pr view <number> --json reviews
Assess ALL comments before implementing:
Self-review — review your own changes and post review output as PR comment
Back to Step 3 — wait for CI, check for new comments, repeat until approved
/tdd <local doc/task>Read the doc/task, plan the implementation.
git worktree add .worktrees/<name> -b feat/<slug> upstream/main
Use tdd:kind for fast local iteration until Kind tests pass.
Offer options:
MANDATORY before the first commit in any TDD flow. Prevents pushing work to the wrong branch/PR.
git branch --show-current
gh pr list --head "$(git branch --show-current)" --json number,title,url --jq '.[] | "#\(.number) \(.title) \(.url)"'
Current branch has open PR?
│
├─ YES → Ask user:
│ "You are on branch <branch> which has open PR #<N>: <title>.
│ Is this the right target for your current work?"
│ │
│ ├─ YES → Continue (commit to this branch)
│ │
│ └─ NO → Create worktree with new branch:
│ git worktree add .worktrees/<name> -b <new-branch> upstream/main
│ (switch all subsequent work to the worktree)
│
└─ NO open PR → Check if branch is main/upstream
│
├─ On main → Create worktree with new branch (never commit to main)
│
└─ On feature branch without PR → Ask user:
"You are on branch <branch> with no open PR.
Continue here or create a new worktree?"
Without this gate, it's easy to accidentally push unrelated changes to an existing feature branch with an open PR, polluting that PR with unrelated commits.
Every command that produces more than ~5 lines of output MUST redirect to a file. This prevents context window pollution from build/test/kubectl output accumulating in context and being re-read on every subsequent turn.
# Session-scoped log directory — ALWAYS set before running commands
export LOG_DIR="${LOG_DIR:-${WORKSPACE_DIR:-/tmp}/rossoctl-tdd}"
mkdir -p "$LOG_DIR"
Rules:
command > $LOG_DIR/name.log 2>&1; echo "EXIT:$?"Task(subagent_type='Explore') to read the log file — NEVER in main contextAll three flows eventually enter this loop:
0. Branch verification gate — verify branch/PR association (first commit only)
1. Write/fix code
2. test:write — write or update tests
3. test:review — verify test quality (no silent skips, assertive)
4. test:run-kind or test:run-hypershift — execute tests (output to $LOG_DIR)
5. Track progress — compare test results with previous run
6. cve:scan — scan for CVEs before pushing (BLOCKS if found)
7. git:commit — commit with proper format
8. git:rebase — rebase onto upstream/main
9. Push → ci:monitoring — wait for CI results
10. CI passes? → Handle reviews (Flow 2 Step 4). CI fails? → Back to step 1.
Never revert. Never amend. Commits are permanent history.
Only commit when:
Commit 1: 8 pass, 5 fail ← baseline, acceptable
Commit 2: 10 pass, 3 fail ← good, +2 passing
Commit 3: 11 pass, 2 fail ← good, +1 passing
(no commit): 9 pass, 4 fail ← DON'T COMMIT — regression, keep iterating
| Skill | Cluster | Auto-approve | Speed |
|---|---|---|---|
tdd:ci | None needed | N/A (CI runs remotely) | Slow (wait for CI) |
tdd:kind | Local Kind | All ops auto-approved | Fast |
tdd:hypershift | HyperShift hosted | All ops auto-approved | Medium |
Concurrency limit: Only one
tdd:kindsession at a time (one Kind cluster fits locally). Before routing totdd:kind, runkind get clusters— if a cluster exists from another session, route totdd:ciinstead or ask the user.
rca:ci - Root cause analysis from CI logsrca:hypershift - Root cause analysis with live clusterrca:kind - Root cause analysis on Kindci:status - Check CI pipeline statustest - Test writing, reviewing, and runningtest:review - Verify test quality before committinggit:commit - Commit with proper formatgit:rebase - Rebase before pushinggit:worktree - Create isolated worktreesrepo:pr - PR creation conventionscve:scan - CVE scanning gatecve:brainstorm - CVE disclosure planningまだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
Authentication and authorization patterns for Rossoctl services
日本語の概要は準備中です。原文の説明を表示しています。
Create confidential OAuth2 clients in Keycloak for server-to-service authentication
日本語の概要は準備中です。原文の説明を表示しています。
Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication
日本語の概要は準備中です。原文の説明を表示しています。
Configure OpenTelemetry Collector with OAuth2 authentication for trace export
日本語の概要は準備中です。原文の説明を表示しています。
CI pipeline monitoring, status checks, and PR validation workflows
日本語の概要は準備中です。原文の説明を表示しています。
Monitor running CI jobs, wait for completion, create tasks for results
日本語の概要は準備中です。原文の説明を表示しています。