Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Determine whether a repository contains a supported cloud workload, then assess eligible targets for cloud-native readiness with a 0-12 score. Use for containerization readiness, Docker/Kubernetes compatibility, deployment feasibility, workload eligibility, or pre-deployment assessment. Also triggers on "/cloud-native-readiness".
.claude/skills/hashgraph-online-cloud-native-readiness/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 148% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 142% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 403% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 128% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 95% | 0% |
cloud-native-readiness (/cloud-native-readiness and readiness, containerization, deployment-feasibility, or workload-eligibility requests).read-only-observation with a typed handoff to dockerfile-skill only after eligibility and route evidence pass.CNR-ELIGIBILITY-STOP and CNR-ROUTE-HANDOFF.Accept a local path or GitHub URL and inspect repository evidence. This entry assesses eligibility, readiness, and existing artifacts; it does not write project files or score an unsupported target. A standalone readiness request keeps its report in the request result and does not create .sealos/analysis.json; composed deploy orchestration may persist a sanitized handoff snapshot under its own contract. A Dockerfile handoff carries the readiness report as its input artifact and leaves packaging mutations to the receiving owner.
Load knowledge/deployment-eligibility.md before scoring. An unsupported or unresolved workload stops before artifact detection, scoring, Dockerfile generation, or deployment. Keep source paths, environment values, and any credentials redacted in the report; preserve the current fail-closed eligibility boundary.
For each request, select the repository, run eligibility, assess eligible targets, detect Docker artifacts, and route only when the decision matrix allows it. The request ends with success, stopped, or error; each result carries the selected source, workload type, redaction status, and the strongest evidence reached. The existing three-phase Assess → Detect → Route workflow remains the domain extension below.
Load modules/assess.md, modules/detect.md, and modules/route.md one level deep when their phase is reached. Load the deployment-eligibility knowledge before the first score. Do not load Dockerfile detail or invoke the handoff after an eligibility stop.
success: selected source, eligible workload type, score dimensions, artifact inventory, concerns, recommendation, verification evidence, and any typed handoff are present.stopped: selected source, workload type, eligibility or confirmation reason codes, observed evidence, redaction result, and safe next action are present; no downstream artifact is claimed.error: selected source, failed phase/helper or artifact, sanitized diagnostic, redaction result, and recovery action are present.When eligible and the route requires packaging, send the complete typed handoff below for an assessment-only request. The receiving skill re-checks its own scope and canaries.
yamltarget: dockerfile-skill inputArtifact: readiness report with source, project language/framework/package manager, dependencies/configuration, workload, score, dimensions, concerns, and artifact inventory allowedAction: generate Docker packaging within the receiving skill's owned file scope failureReturn: readiness findings and the failed route condition responseOwner: cloud-native-readiness
Use workload-eligibility.mjs, score-model.mjs, the current readiness eval evidence, and the baseline traces readiness-positive-eligible and readiness-violating-ineligible. Verify eligibility before score/build, preserve report fields, and redact credential-shaped values.
Keep this payload request-scoped and repository-relative. A downstream handoff may reuse it without repeating discovery.
yamlsource: kind: local-path | github-url display: redacted repository identifier project: language: detected language framework: detected framework or null package_manager: detected package manager or null dependencies: redacted external dependency types and versions configuration: redacted configuration and environment-key observations workload: type: server | static-web | worker | scheduled-job | reviewed-remote-desktop | unresolved eligibility: eligible | ineligible | needs_review assessment: score: 0-12 or null when stopped dimensions: six named scores when eligible concerns: redacted findings artifacts: status: complete | partial | none inventory: repository-relative paths and quality observations recommendation: report-only | package | remediate | stop verification: helper: eligibility and/or scoring helper invoked evidence: observed result and redaction status handoff: typed tuple or none terminal_state: success | stopped | error safe_next_action: request-scoped next action
The payload never contains passwords, tokens, kubeconfig contents, environment values, or complete connection strings.
This skill evaluates a repository's readiness for cloud-native microservice deployment through a 3-phase workflow:
dockerfile-skill to containerizecloud-native-readiness
│
├─ Phase 1: Cloud-Native Assessment
│ ├─ Eligibility fails or needs review → Report evidence, END
│ └─ Eligible → Calculate readiness score
│
├─ Phase 2: Existing Artifacts Detection
│ ├─ Found Dockerfile/docker-compose/image → Report existing setup, END
│ └─ Not found → Continue
│
└─ Phase 3: Route to dockerfile-skill
└─ Invoke /dockerfile to generate Docker configuration/cloud-native-readiness # Assess current directory
/cloud-native-readiness <path> # Assess specific path
/cloud-native-readiness <github-url> # Clone and assessWhen invoked, read and execute modules/assess.md first. Continue to modules/detect.md and modules/route.md only when the assessment report resolves the requested root as eligible. An ineligible, unresolved needs_review, or error result ends the request with its evidence and safe next action before artifact detection or downstream routing.
Load and execute: modules/assess.md
Apply knowledge/deployment-eligibility.md before assigning a readiness score. Continue only when the requested root is classified eligible.
Evaluates 6 dimensions (each scored 0-2):
| Dimension | What to check | |-----------|---------------| | Statelessness | Does the app store state locally (sessions in memory, local file writes)? | | Config Externalization | Are configs hardcoded or driven by env vars / config files? | | Horizontal Scalability | Can multiple instances run without conflicts? | | Startup/Shutdown | Does the app start fast and handle SIGTERM gracefully? | | Observability | Does it have health checks, structured logging, metrics? | | Service Boundaries | Is it a focused service or a tightly-coupled monolith? |
Scoring:
Output: Structured readiness report with score, findings, and recommendations.
Load and execute: modules/detect.md
Checks for:
Dockerfile / Dockerfile.* (multi-stage, multi-service)docker-compose.yml / docker-compose.yaml / compose.yml.dockerignoreDOCKER.md or docker-related documentationk8s/, kubernetes/, deploy/, helm/, charts/).github/workflows/, .gitlab-ci.yml)Output: Inventory of existing Docker/K8s artifacts with quality assessment.
Load and execute: modules/route.md
Decision Matrix:
An ineligible or unresolved needs_review result always stops before artifact detection or Dockerfile generation. Apply the score matrix only to eligible targets.
| Readiness Score | Artifacts Exist | Action | |-----------------|-----------------|--------| | ≥ 7 | Yes, complete | Report existing setup. Done. | | ≥ 7 | Yes, partial | Report gaps, suggest improvements. Done. | | ≥ 7 | No | Invoke dockerfile-skill to generate. | | 4-6 | Any | Report issues + remediation steps. Optionally proceed with dockerfile-skill. | | 0-3 | Any | Report blockers. Do NOT invoke dockerfile-skill. |
The final output MUST use this format:
For a stopped eligibility result, report its workload type, reason codes, evidence, and next action without inventing a readiness score.
markdown# Cloud-Native Readiness Report ## Summary - **Project**: {name} - **Eligibility**: {eligible | ineligible | needs_review} — {workload type} - **Score**: {score}/12 ({rating}) - **Verdict**: {Ready | Ready with caveats | Needs work | Not recommended} ## Assessment Details ### ✅ Strengths - {what's already cloud-native friendly} ### ⚠️ Concerns - {issues that need attention} ### ❌ Blockers (if any) - {critical issues preventing containerization} ## Dimension Scores | Dimension | Score | Notes | |-----------|-------|-------| | Statelessness | {0-2} | {detail} | | Config Externalization | {0-2} | {detail} | | Horizontal Scalability | {0-2} | {detail} | | Startup/Shutdown | {0-2} | {detail} | | Observability | {0-2} | {detail} | | Service Boundaries | {0-2} | {detail} | ## Existing Docker Artifacts - {inventory or "None found"} ## Recommendation - {next steps}
When routing to dockerfile-skill, pass the assessment context:
docker-compose.yml servicesDOCKER.md caveatsHandoff: When invoking dockerfile-skill, include a summary of:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 10,396 | 17,896 | +72% | 1 | 1 | 0% | 260 | 3,168 | +1118% | 0 | 0 | — |
case-02 | fail→fail | 23,283 | 7,481 | -68% | 1 | 1 | 0% | 3,292 | 3,316 | +1% | 0 | 0 | — |
case-03 | fail→fail | 27,592 | 11,977 | -57% | 1 | 1 | 0% | 3,429 | 3,075 | -10% | 0 | 0 | — |
case-04 | fail→pass | 19,634 | 39,406 | +101% | 1 | 1 | 0% | 2,944 | 7,312 | +148% | 0 | 0 | — |
case-05 | fail→fail | 9,374 | 18,374 | +96% | 1 | 1 | 0% | 1,766 | 3,088 | +75% | 0 | 0 | — |
case-06 | fail→pass | 11,661 | 27,050 | +132% | 1 | 1 | 0% | 1,848 | 4,476 | +142% | 0 | 0 | — |
case-07 | pass→pass | 15,470 | 11,341 | -27% | 1 | 1 | 0% | 1,592 | 4,265 | +168% | 0 | 0 | — |
case-08 | fail→pass | 10,609 | 9,407 | -11% | 1 | 1 | 0% | 691 | 3,479 | +403% | 0 | 0 | — |
case-09 | pass→pass | 8,697 | 12,430 | +43% | 1 | 1 | 0% | 1,382 | 3,900 | +182% | 0 | 0 | — |
case-10 | pass→pass | 18,940 | 10,720 | -43% | 1 | 1 | 0% | 2,696 | 4,531 | +68% | 0 | 0 | — |
case-11 | pass→pass | 7,939 | 15,601 | +97% | 1 | 1 | 0% | 1,235 | 4,328 | +250% | 0 | 0 | — |
case-12 | fail→pass | 12,183 | 6,909 | -43% | 1 | 1 | 0% | 1,684 | 3,835 | +128% | 0 | 0 | — |
case-13 | pass→pass | 16,687 | 7,443 | -55% | 1 | 1 | 0% | 1,565 | 3,826 | +144% | 0 | 0 | — |
case-14 | pass→pass | 9,304 | 3,948 | -58% | 1 | 1 | 0% | 1,245 | 3,260 | +162% | 0 | 0 | — |
case-15 | fail→pass | 12,407 | 12,993 | +5% | 1 | 1 | 0% | 1,890 | 3,680 | +95% | 0 | 0 | — |
case-16 | pass→pass | 16,299 | 18,172 | +11% | 1 | 1 | 0% | 1,796 | 4,409 | +145% | 0 | 0 | — |
case-17 | pass→pass | 13,557 | 8,237 | -39% | 1 | 1 | 0% | 1,317 | 3,851 | +192% | 0 | 0 | — |
case-18 | pass→pass | 5,368 | 13,610 | +154% | 1 | 1 | 0% | 859 | 4,004 | +366% | 0 | 0 | — |
case-19 | fail→pass | 14,408 | 8,846 | -39% | 1 | 1 | 0% | 1,572 | 3,149 | +100% | 0 | 0 | — |
case-20 | pass→pass | 10,667 | 8,189 | -23% | 1 | 1 | 0% | 1,461 | 3,003 | +106% | 0 | 0 | — |
case-21 | pass→pass | 16,833 | 3,406 | -80% | 1 | 1 | 0% | 1,645 | 3,069 | +87% | 0 | 0 | — |
case-22 | fail→pass | 14,489 | 7,205 | -50% | 1 | 1 | 0% | 1,742 | 2,916 | +67% | 0 | 0 | — |
case-23 | pass→pass | 21,593 | 11,098 | -49% | 1 | 1 | 0% | 2,932 | 4,100 | +40% | 0 | 0 | — |
case-24 | fail→pass | 15,014 | 9,119 | -39% | 1 | 1 | 0% | 2,684 | 4,452 | +66% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 20 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +33 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.