google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
This skill should be used when estimating development time for Jira tickets. It provides both manual and AI-assisted estimates with T-shirt sizes, story points, and phase-by-phase time breakdowns based on task type classification, complexity scoring, and project architecture (monolithic/serverles...
Full skill instructions
Estimate manual and AI-assisted development time for Jira tickets using an 8-phase manual workflow and 8-phase AI-assisted workflow that mirror real development processes.
Invoke when:
Required (one of):
Optional Flags:
--project-type: monolithic|serverless|frontend|fullstack|mobile|test_automation (default: monolithic)--task-type-override: Manual override for task classification--team-velocity: Velocity factor for story points (default: 1.0)--has-infrastructure-changes: Flag for infrastructure changesUse Atlassian MCP tools to retrieve ticket information:
mcp__atlassian_fetch_jira_ticket --ticket-id=<ticket-id>
Extract: title, description, acceptance criteria, issue type, labels.
If MCP unavailable, prompt user for ticket details.
Classify into one of 5 types using keywords and issue type:
See references/task-type-classification.md for complete classification guide.
Scan codebase to understand scope and COUNT FILES:
File Counting Strategy:
# Run multiple searches
messaging_files = Grep("messagingSync", output_mode="files_with_matches")
model_files = Grep("extendables", type="php", output_mode="files_with_matches")
test_files = Glob("tests/**/*Relevant*.php")
command_files = Glob("app/Console/Commands/**/*Relevant*.php")
# Combine and deduplicate
all_files = set()
all_files.update(messaging_files or [])
all_files.update(model_files or [])
all_files.update(test_files or [])
all_files.update(command_files or [])
file_count = len(all_files)
# This file_count MUST be passed to estimator.estimate_ticket()
File Count Impact (file_touch_overhead):
Why this matters: Manual development has mechanical overhead (opening files, reading context, making changes). AI can batch process efficiently, so overhead only applies to manual workflow.
Scan ticket title and description for explicit time additions:
Supported patterns:
(+4h), (4h), (+4 hours) - Parentheses format (recommended)+4h, +4 hours - Plus prefix format(+30m), (30m), (+30 minutes) - Minutes notation+2.5h, +1.5 hours - Decimal values supportedExamples:
Intelligent Phase Distribution:
The system analyzes the context around each time adjustment and intelligently distributes it to the appropriate workflow phase:
| Adjustment Context | Destination Phase | Example |
|---|---|---|
| QA, manual testing, smoke test, verification | Verification (Phase 7) | "QA self run (+2h)" |
| Unit test, integration test, test coverage | Testing (Phase 4) | "write unit tests (+1h)" |
| Code review, peer review, PR review | Code Review (Phase 5) | "security review (+45m)" |
| Self review | Self Review (Phase 3) | "self review (+30m)" |
| Planning, design, architecture | Planning & Design (Phase 1) | "architecture planning (+1h)" |
| Implementation, coding, development | Implementation (Phase 2) | "additional coding (+2h)" |
| Deployment, deploy | Deployment (Phase 6) | "deployment steps (+30m)" |
| Feedback, iteration, refinement | Feedback & Iterations (Phase 8) | "incorporate feedback (+1h)" |
| Unmatched (coordination, meetings, etc.) | Phase 9: Overhead Activities | "coordinate with DevOps (+1h)" |
Phase 9 only appears if there are unmatched adjustments that don't fit into any of the standard workflow phases.
Score each factor on 1-10 scale:
See references/complexity-scoring-guide.md for detailed scoring guide.
Execute the estimation script with gathered inputs:
cd .claude/skills/jira-ticket-estimator
python3 scripts/estimator.py <<EOF
{
"title": "<ticket_title>",
"description": "<ticket_description>",
"project_type": "<monolithic|serverless|frontend|fullstack>",
"issue_type": "<Bug|Story|Task|Spike>",
"complexity_scores": {
"scope_size": <1-10>,
"technical_complexity": <1-10>,
"testing_requirements": <1-10>,
"risk_and_unknowns": <1-10>,
"dependencies": <1-10>
},
"has_infrastructure_changes": <true|false>
}
EOF
Or use Python directly:
from scripts.estimator import TicketEstimator
import json
estimator = TicketEstimator('heuristics.json')
# Option 1: Auto-detect manual adjustments from title/description
result = estimator.estimate_ticket(
title="<ticket_title>",
description="Manual testing required (+2h)", # Auto-detected
project_type="<project_type>",
issue_type="<issue_type>",
complexity_scores={
'scope_size': <score>,
'technical_complexity': <score>,
'testing_requirements': <score>,
'risk_and_unknowns': <score>,
'dependencies': <score>
},
has_infrastructure_changes=<bool>,
file_count=<counted_files> # IMPORTANT: Pass file count from reconnaissance
)
# Option 2: Explicitly pass manual adjustments (overrides auto-detection)
manual_adjustments = [
{"context": "Manual testing", "hours": 2.0, "phase": "verification"},
{"context": "QA coordination", "hours": 1.5, "phase": "verification"},
{"context": "Extra planning", "hours": 1.0, "phase": "planning_design"}
]
result = estimator.estimate_ticket(
title="<ticket_title>",
description="<ticket_description>",
project_type="<project_type>",
issue_type="<issue_type>",
complexity_scores={...},
has_infrastructure_changes=<bool>,
file_count=<counted_files>,
manual_adjustments=manual_adjustments # Explicit adjustments (NEW!)
)
print(json.dumps(result, indent=2))
Manual Adjustments - Two Methods:
(+2h), +2h, (2h) in title/descriptionmanual_adjustments list with context, hours, and target phaseValid phases for adjustments:
verification - Test verification phasetesting - Testing phasecode_review - Code review & revisions phaseself_review - Self review phaseplanning_design - Planning & design phaseimplementation - Implementation phasedeployment_to_test - Deployment phasefeedback_iterations - Feedback & iterations phaseoverhead - Unmatched overhead (creates Phase 9)Script outputs JSON with complete estimate breakdown including both manual and AI-assisted workflows, plus detected/explicit manual time adjustments.
Extract from JSON output:
Convert total_hours_rounded (bucket value) to days/hours format:
Day size: 1 day = 8 hours (configured in heuristics.json)
Conversion formula:
days = total_hours_rounded ÷ 8 (integer division)remaining_hours = total_hours_rounded % 8 (modulo)Display format:
total_hours_rounded < 8: Show as "Xh" (e.g., "4h", "6h")remaining_hours = 0: Show as "Xd" (e.g., "2d" for 16h, "4d" for 32h)remaining_hours > 0: Show as "Xd Xh" (e.g., "2d 4h" for 20h, "3d 6h" for 30h)Examples:
Format output as markdown table:
# Estimate: <TICKET-ID>
**Project Type**: <type>
**Task Type**: <type> (<classification rationale>)
**T-Shirt Size**: <size>
**Story Points**: <points>
**Complexity**: <raw>/10 → <adjusted>/10 (scale factor: <sf>)
**Files Affected**: <files count>
**Manual Development Total**: Xd Xh (or Xh if < 8h)
- Breakdown: X.XXh (includes overhead if any) → Xh rounded
**AI-Assisted Development Total**: Xd Xh (or Xh if < 8h)
- Breakdown: X.XXh (includes overhead if any) → Xh rounded
**Time Savings**: XX.X%
## Manual Development Time Breakdown
| Phase | Time | Details |
|-------|------|---------|
| 1. Planning & Design | X min | <description> |
| 2. Implementation | X min | <task-type base unit> × <complexity> |
| 3. Self Review | 30 min | Review own code before testing |
| 4. Testing | X min | <percentage>% of implementation |
| 5. Code Review & Revisions | X min | <description> |
| 6. Deployment to Test | X min | Deploy to test environment |
| 7. Test Verification | X min | Smoke tests, verification (scales with complexity) |
| 8. Feedback & Iterations | X min | Incorporate stakeholder feedback, iterate on changes |
| **9. Overhead Activities** | **X min** | **+Xh from title, +Xm from description** (if detected) |
| **TOTAL (calculated)** | **X.XXh** | |
| **TOTAL (rounded)** | **Xh** | Snapped to bucket |
## AI-Assisted Development Time Breakdown
| Phase | Time | Details |
|-------|------|---------|
| 1. AI Planning | X min | AI generates architecture, API contracts (X% savings) |
| 2. AI Implementation | X min | AI generates code, tests (X% savings) |
| 3. AI Review | X min | AI reviews for bugs, improvements |
| 4. Human Review & Testing | X min | Validate AI output, run tests |
| 5. Iterations & Vibe Coding | X min | Fix AI mistakes, refine prompts |
| 6. Deploy to Test | X min | Deploy to test environment |
| 7. Test Verification | X min | Smoke tests, E2E verification |
| 8. Feedback & Iterations | X min | Incorporate stakeholder feedback, iterate on AI-generated changes |
| **9. Overhead Activities** | **X min** | **+Xh from title, +Xm from description** (if detected) |
| **TOTAL (calculated)** | **X.XXh** | |
| **TOTAL (rounded)** | **Xh** | Snapped to bucket |
## Complexity Scores
| Factor | Score | Rationale |
|--------|-------|-----------|
| Scope Size | X/10 | <why> |
| Technical Complexity | X/10 | <why> |
| Testing Requirements | X/10 | <why> |
| Risk & Unknowns | X/10 | <why> |
| Dependencies | X/10 | <why> |
## Assumptions
1. <assumption 1>
2. <assumption 2>
3. <assumption 3>
## Confidence Level
**<High|Medium|Low>** - <rationale>
## Next Steps
1. Review estimate with stakeholders
2. Validate complexity scores and task type
3. Approval gate: proceed, modify scope, or reject
4. Choose development approach (manual vs AI-assisted)
5. Track actual vs estimated time for calibration
If --update-jira flag provided:
mcp__atlassian_update_jira_issue --ticket-id=<ticket-id> --story-points=<points>
Five project types with customized workflow phases:
All phase times scale with complexity. See references/workflow-formulas.md for complete formulas.
Estimates follow real development phases:
Intelligent Adjustment Distribution:
When time adjustments like (+4h) are detected, they're intelligently distributed to the appropriate phase based on context:
Phase 9 only appears if there are unmatched adjustments that don't fit into standard workflow phases (e.g., coordination, meetings, external dependencies).
AI-assisted development follows these phases:
Intelligent Adjustment Distribution: Same intelligent distribution logic applies to AI-assisted workflow. Adjustments are added to their appropriate phases based on context.
Note: Overhead activities (Phase 9) are the same for manual and AI-assisted development. Only the core workflow phases (1-8) benefit from AI acceleration.
Typical time savings: 40-50% compared to manual development.
All parameters stored in heuristics.json:
(+4h), +2h, (30m), +15 minutes+2.5h"enabled": false in heuristics.jsonFinal estimates are snapped to standardized time buckets using a threshold-based approach.
Buckets (hours): 0, 1, 2, 3, 4, 6, 8 (1d), 12 (1.5d), 16 (2d), 20 (2.5d), 24 (3d), 28 (3.5d), 32 (4d), 36 (4.5d), 40 (5d)
Day size: 1d = 8h
Rule: Compute the precise grand total (workflow phases 1-9, which includes overhead in Phase 9 if detected), then snap to the nearest bucket using a threshold-based approach.
Formula: threshold = currentBucket + ((nextBucket - currentBucket) × 0.75)
| Current Bucket | Next Bucket | Gap | Threshold | Range |
|---|---|---|---|---|
| 0h | 1h | 1h | 0.63h | 0-0.63h → 0h |
| 1h | 2h | 1h | 1.63h | 0.64-1.63h → 1h |
| 2h | 3h | 1h | 2.63h | 1.64-2.63h → 2h |
| 3h | 4h | 1h | 3.63h | 2.64-3.63h → 3h |
| 4h | 6h | 2h | 5h | 3.64-5h → 4h |
| 6h | 8h | 2h | 7h | 5.01-7h → 6h |
| 8h | 12h | 4h | 10h | 7.01-10h → 8h |
| 12h | 16h | 4h | 14h | 10.01-14h → 12h |
| 16h | 20h | 4h | 18h | 14.01-18h → 16h |
| 20h | 24h | 4h | 22h | 18.01-22h → 20h |
| 24h | 28h | 4h | 26h | 22.01-26h → 24h |
| 28h | 32h | 4h | 30h | 26.01-30h → 28h |
| 32h | 36h | 4h | 34h | 30.01-34h → 32h |
| 36h | 40h | 4h | 38h | 34.01-38h → 36h |
| 40h | - | - | - | 38.01h+ → 40h (split scope) |
Examples:
When presenting estimates, show both:
To customize for your team:
heuristics.jsonExample adjustment:
{
"monolithic": {
"workflow_phases": {
"planning_design": {
"base_minutes_at_complexity_5": 120
}
}
}
}
heuristics.json - Complete estimation configurationscripts/estimator.py - Python calculation enginereferences/task-type-classification.md - Detailed task type guidereferences/complexity-scoring-guide.md - Factor-by-factor scoring guidereferences/workflow-formulas.md - Complete formulas and examplesUser: "Estimate LOOM-4156 for our Laravel monolith"
Agent:
# Estimate: LOOM-4156
**Project Type**: Monolithic Application
**Task Type**: Bug Fix (keywords: "fix", "validation", "error")
**T-Shirt Size**: XS
**Story Points**: 1
**Complexity**: 3.0/10 → 1.26/10 (scale factor: 0.252)
## Manual Development Time Breakdown
| Phase | Time | Details |
|-------|------|---------|
| 1. Planning & Design | 23 min | Architecture review, edge cases |
| 2. Implementation | 16 min | Fix validation logic |
| 3. Self Review | 30 min | Review own code before testing |
| 4. Testing | 6 min | Unit tests for validation |
| 5. Code Review & Revisions | 11 min | Peer review |
| 6. Deployment to Test | 25 min | Deploy to test environment |
| 7. Verification | 5 min | Smoke test, verify fix |
| **Total (calculated)** | **1.93h** | |
| **Total (rounded)** | **2h** | Snapped to bucket |
## AI-Assisted Development Time Breakdown
| Phase | Time | Details |
|-------|------|---------|
| 1. AI Planning | 7 min | AI generates fix approach (70% savings) |
| 2. AI Implementation | 6 min | AI generates validation fix (65% savings) |
| 3. AI Review | 5 min | AI reviews for edge cases |
| 4. Human Review & Testing | 8 min | Validate fix, run tests |
| 5. Iterations & Vibe Coding | 3 min | Refine if needed |
| 6. Deploy to Test | 25 min | Deploy to test environment |
| 7. Test Verification | 10 min | Verify fix works |
| **Total (calculated)** | **1.15h** | |
| **Total (rounded)** | **1h** | Snapped to bucket |
## Time Savings
- **Manual Development**: 1.93h → 2h rounded
- **AI-Assisted Development**: 1.15h → 1h rounded
- **Time Savings**: 1h (50% faster)
Before calling estimator.estimate_ticket(), ensure you have:
File Count Sources:
Common mistake: Forgetting to pass file_count parameter results in underestimating manual workflow by 2-5 hours for large refactors!
(+Xh) or +Xh format in ticket contentheuristics.json based on team historical data--update-jira to persist story points automaticallyProject scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.
Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.
Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.
Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.
Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.
Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.
Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.