From jobops-ic
Generates professional rate card documents from service definitions with pricing validation including daily/hourly rate consistency, tier progression, and multipliers. Outputs MD, PDF, or HTML.
npx claudepluginhub reggiechan74/jobops --plugin jobops-icThis skill uses the workspace's default tool permissions.
Read `.jobops/config.json`. If missing, stop with:
Generates McKinsey/BCG-style consulting proposal templates with transparent pricing calculations from service definitions, rate cards, and engagement types like project or retainer.
Generates client proposals for service businesses like web development and consulting, covering project understanding, solution, scope, timeline, pricing, and terms.
Generates professional project proposals with executive summary, deliverables, tiered pricing, timeline, and terms for client bids, pitches, and freelance engagements.
Share bugs, ideas, or general feedback.
Read .jobops/config.json. If missing, stop with:
JOBOPS NOT CONFIGURED Run /jobops:setup (then /jobops-ic:setup) to initialize your workspace.
Use config.directories.contractor_root for output paths in this skill.
Use config.preferences.default_currency for pricing if applicable.
Generate professional rate card from service definition with pricing validation.
$1: Format (default: md): md | pdf | html$2: Currency (default: CAD): CAD | USD$3: --include-justification to add credentials/ROI sectionFind most recent: {config.directories.contractor_root}/services/service_definition_*.md
If not found:
PREREQUISITE MISSING: Service Definition
Run /defineservices first to create service catalog and pricing.
Load and validate:
If rate_card missing:
INVALID SERVICE DEFINITION: Missing Rate Card
Required structure:
## Rate Card
### Hourly Rates
- **Minimum**: $[X]/hr
- **Target**: $[Y]/hr
- **Premium**: $[Z]/hr
### Daily Rates
- **Minimum**: $[A]/day
- **Target**: $[B]/day
- **Premium**: $[C]/day
Fix with: /defineservices --update
Check: {config.directories.resume_source}/.profile/candidate_profile.json
Check 1: Daily Rate Consistency
daily_rate ~ hourly_rate x 8 (+/-10% tolerance)Check 2: Rate Tier Progression
minimum < target < premium (both hourly and daily)Check 3: Premium Multiplier
1.3x <= premium/target <= 2.0xCheck 4: Retainer Discounts (if applicable)
Display results:
PRICING VALIDATION COMPLETE
- Daily rates align with hourly x 8
- Rate tiers ascending
- Premium multiplier reasonable (1.3x-2.0x)
[Advisory warnings if any]
[Auto-corrections if any]
--include-justification flagIf output currency != service definition currency:
YAML Frontmatter:
consultant: "[Name]"
effective_date: [YYYY-MM-DD]
valid_until: [+6 months]
currency: [CAD|USD]
generated_on: [ISO8601]
pricing_validated: [true/false]
source_definition: "{config.directories.contractor_root}/services/service_definition_[Date].md"
Sections:
Save to: {config.directories.contractor_root}/rate-cards/rate_card_[YYYYMMDD].md
CSS Styling (embedded):
HTML Structure:
If format is pdf:
/tmp/ratecard_temp_[timestamp].htmlmcp__playwright__browser_navigate to file://[tmp_html]browser_run_code:
await page.pdf({
path: '{config.directories.contractor_root}/rate-cards/rate_card_[YYYYMMDD].pdf',
format: 'Letter',
printBackground: true,
margin: { top: '0.75in', bottom: '0.75in', left: '0.75in', right: '0.75in' }
});
If PDF fails: Fallback to HTML with manual conversion instructions
If format is html:
{config.directories.contractor_root}/rate-cards/rate_card_[YYYYMMDD].html and skip Phase 5PROFESSIONAL RATE CARD GENERATED
**Output:** {config.directories.contractor_root}/rate-cards/rate_card_[YYYYMMDD].[format] ([XX] KB)
**Source:** service_definition_[Date].md
**Pricing:**
Hourly: $[min]-$[premium]/hr ([Currency])
Daily: $[min]-$[premium]/day
[Retainer: $[min]-$[max]/mo]
**Services:** [X] offerings ([List names])
**Validation:**
- Daily = hourly x 8 (+/-10%)
- Tiers ascending
- Premium multiplier: [X.X]x
[Auto-corrections: [count] | Warnings: [count]]
**Validity:** [Start] to [End] (6 months)
[Currency conversion note if applicable]
[Credentials section if --include-justification]
**Next Steps:**
1. Review for accuracy
2. Customize: Company-specific terms, volume discounts, special tiers
3. Distribute: Email PDF, host HTML, include in proposals
4. Maintain: Quarterly reviews, annual updates
5. Related: /defineservices --update, /proposaltemplate, /findclient
**Rate Card Summary:**
================================================================
[CONSULTANT] | [CURRENCY] | VALID: [Start] to [End]
----------------------------------------------------------------
Hourly: $[min]/hr | $[target]/hr | $[premium]/hr
Daily: $[min]/day | $[target]/day | $[premium]/day
[Retainer: Part-time $[X]/mo, Half-time $[Y]/mo, Full-time $[Z]/mo]
----------------------------------------------------------------
PAYMENT: [Deposit]% upfront, Net [days] | MINIMUM: [hours]
================================================================
Missing Prerequisites:
Validation Failures:
Generation Failures:
Pricing Validation Philosophy:
Rate Card Best Practices:
Playwright PDF Pattern: Same as /formatresume - HTML with embedded CSS -> temp file -> navigate -> page.pdf() -> cleanup
Now executing rate card generation with format $1, currency $2, and justification flag $3...