Install
$ agentstack add skill-policyengine-policyengine-claude-policyengine-writing-skill ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
PolicyEngine Writing Skill
Use this skill when writing blog posts, documentation, PR descriptions, research reports, or any public-facing PolicyEngine content.
When to Use This Skill
- Writing blog posts about policy analysis
- Creating PR descriptions
- Drafting documentation
- Writing research reports
- Composing social media posts
- Creating newsletters
- Writing README files
Core Principles
PolicyEngine's writing emphasizes clarity, precision, and objectivity.
- Active voice - Prefer active constructions over passive
- Direct and quantitative - Use specific numbers, avoid vague adjectives/adverbs
- Sentence case - Use sentence case for headings, not title case
- Neutral tone - Describe what policies do, not whether they're good or bad
- Precise language - Choose exact verbs over vague modifiers
Active Voice
Active voice makes writing clearer and more direct.
✅ Correct (Active):
Harris proposes expanding the Earned Income Tax Credit
The reform reduces poverty by 3.2%
PolicyEngine projects higher costs than other organizations
We estimate the ten-year costs
The bill lowers the state's top income tax rate
Montana raises the EITC from 10% to 20%
❌ Wrong (Passive):
The Earned Income Tax Credit is proposed to be expanded by Harris
Poverty is reduced by 3.2% by the reform
Higher costs are projected by PolicyEngine
The ten-year costs are estimated
The state's top income tax rate is lowered by the bill
The EITC is raised from 10% to 20% by Montana
Quantitative and Precise
Replace vague modifiers with specific numbers and measurements.
✅ Correct (Quantitative):
Costs the state $245 million
Benefits 77% of Montana residents
Lowers the Supplemental Poverty Measure by 0.8%
Raises net income by $252 in 2026
The reform affects 14.3 million households
Hours worked falls by 0.27%, or 411,000 full-time equivalent jobs
The top decile receives an average benefit of $1,033
PolicyEngine projects costs 40% higher than the Tax Foundation
❌ Wrong (Vague adjectives/adverbs):
Significantly costs the state
Benefits most Montana residents
Greatly lowers poverty
Substantially raises net income
The reform affects many households
Hours worked falls considerably
High earners receive large benefits
PolicyEngine projects much higher costs
Sentence Case for Headings
Use sentence case (capitalize only the first word and proper nouns) for all headings.
✅ Correct (Sentence case):
## The proposal
## Nationwide impacts
## Household impacts
## Statewide impacts 2026
## Case study: the End Child Poverty Act
## Key findings
❌ Wrong (Title case):
## The Proposal
## Nationwide Impacts
## Household Impacts
## Statewide Impacts 2026
## Case Study: The End Child Poverty Act
## Key Findings
Analytical neutrality
PolicyEngine is a nonpartisan 501(c)(3). Every piece of output must let the reader draw their own conclusions from the data. This section covers both surface-level tone and deeper structural neutrality.
Value-laden language
Describe what policies do without value judgments.
✅ Correct:
The reform reduces poverty by 3.2% and raises inequality by 0.16%
Single filers with earnings between $8,000 and $37,000 see their net incomes increase
The tax changes raise the net income of 75.9% of residents
PolicyEngine projects higher costs than other organizations
The top income decile receives 42% of total benefits
❌ Wrong:
The reform successfully reduces poverty by 3.2% but unfortunately raises inequality
Low-income workers finally see their net incomes increase
The tax changes benefit most residents
PolicyEngine provides more accurate cost estimates
The wealthiest households receive a disproportionate share of benefits
Specific words and phrases to avoid:
- "Unfortunately" or "successfully" attached to policy outcomes
- "Disproportionate" without defining the benchmark
- "Fair share" or "equitable" without specifying the normative standard
- "Helping" or "hurting" — use "increases/decreases net income by $X"
- "Merely" or "just" to understate difficulty
Policy prescriptions disguised as findings
Never recommend policies. Present findings and let readers decide.
❌ Wrong:
The government should simplify the tax code
This implies we need to expand the credit
For policy, this means targeting simplification efforts at middle-income households
✅ Correct:
The model estimates that reducing misperception by 5 percentage points lowers
deadweight loss by 66%. The relative cost-effectiveness of approaches to
achieving this reduction depends on implementation costs outside the model's scope.
Also avoid:
- Ranking policy options without model support for the ranking
- Claiming one policy channel is superior to another without modeling both
- "Policymakers should..." or "Reform X is needed"
Speculative claims presented as results
Every claim must be backed by model output or cited evidence.
❌ Wrong:
Plausibly achievable through minor administrative changes
Low-cost relative to the welfare gains at stake
Per unit of political effort, simplification dominates rate cuts
✅ Correct:
The model estimates a 66% reduction in deadweight loss from a 5 percentage point
decrease in σ. Whether this reduction is achievable, and at what cost, depends on
factors outside the model's scope.
Also avoid:
- Predictions about political feasibility or implementation difficulty
- Directional claims about unmeasured relationships ("would likely increase")
- Comparisons to unmeasured quantities to make modeled results look favorable
One-sided framing of tradeoffs
Present both sides. If you discuss benefits, discuss costs. If you discuss costs, discuss what the policy achieves.
❌ Wrong:
The reform reduces child poverty at minimal cost
Even the most conservative estimate shows significant gains
✅ Correct:
The reform reduces the Supplemental Poverty Measure by 3.2%, affecting 2.1 million
children. The sensitivity range spans 1.8% to 4.7% depending on behavioral
assumptions. The estimated cost is $14.3 billion annually.
Also avoid:
- "Lower bound" / "conservative estimate" stacking without acknowledging assumptions that push the other direction
- "Free lunch" framing: claiming a policy has no downside
- Comparing a modeled quantity to an unmodeled quantity to make the modeled one look favorable
Scope honesty
State what the model can and cannot show. Don't extend conclusions beyond the analysis.
❌ Wrong:
The results demonstrate that tax simplification is welfare-improving
Adding the misperception cost to Skinner's policy uncertainty cost gives 0.5% of GDP
✅ Correct:
Within the model, reducing σ by 5 percentage points lowers aggregate deadweight loss
by approximately two-thirds. Whether real-world interventions can achieve this
reduction is an empirical question beyond the model's scope.
Also avoid:
- Applying static model results to dynamic settings without caveat
- Treating model parameters as if they were policy levers
- Adding estimates from different models/frameworks as if straightforwardly additive
Counterintuitive results
When results show impacts that go against directional expectations, always explain the mechanism. Unexplained surprising results erode trust and leave readers to guess — or assume the analysis is wrong.
Common counterintuitive patterns to watch for:
- Households losing from a tax rate reduction (SALT deduction interactions, AMT thresholds, benefit phase-outs)
- Households losing from a benefit expansion (cliff effects, interactions with other means-tested programs)
- A reform that raises revenue but increases poverty (or vice versa)
- Impacts that differ in sign across income groups in unexpected ways
- A "simplification" that raises effective rates for some filers
❌ Wrong:
The tax rate reduction increases net income for 82% of households.
✅ Correct:
The tax rate reduction increases net income for 82% of households. The 4.3%
of households that see a net income decrease are primarily filers in the
$100,000–$200,000 range who lose more from the corresponding SALT deduction
cap than they gain from the lower rate.
Rule: if any subgroup's impact has the opposite sign from the headline result, explain why.
Common neutrality problems by output type
Blog posts:
- Framing a policy as "helping families" instead of "increasing net income by $X for households with income between $Y and $Z"
- Comparing PolicyEngine results favorably to other models without noting methodological differences
- Stating policy costs without mentioning what the policy achieves (or vice versa)
Research papers:
- "Lower bound" / "conservative" stacking: asserting the estimate is conservative at every decision point without acknowledging assumptions pushing the other way
- Policy prescription sections that go beyond model scope
- Informal magnitude comparisons designed to make results seem large or small
Interactive tools:
- Default scenarios that highlight dramatic results
- Labels or descriptions that frame outcomes positively or negatively
- "You could save $X" instead of "Your net income changes by $X"
Project communications:
- Claiming PolicyEngine is "more accurate" than alternatives (say: "projects X% higher/lower than Y")
- Describing nonpartisan analysis as "supporting" a particular reform
- Using results to advocate for or against specific legislation
Precise Verbs Over Adverbs
Choose specific verbs instead of generic verbs modified by adverbs.
✅ Correct (Precise verbs):
The bill lowers the top rate from 5.9% to 5.4%
The policy raises the maximum credit from $632 to $1,774
The reform increases the phase-in rate from 7.65% to 15.3%
This doubles Montana's EITC from 10% to 20%
The change eliminates the age cap
❌ Wrong (Vague verbs + adverbs):
The bill significantly changes the top rate
The policy substantially increases the maximum credit
The reform greatly boosts the phase-in rate
This dramatically expands Montana's EITC
The change completely removes the age cap
Concrete Examples
Always include specific household examples with precise numbers.
✅ Correct:
For a single adult with no children and $10,000 of earnings, the tax provisions
increase their net income by $69 in 2026 and $68 in 2027, solely from the
doubled EITC match.
A single parent of two kids with an annual income of $50,000 will see a $252
increase to their net income: $179 from the expanded EITC, and $73 from the
lower bracket threshold.
A married couple with no dependents and $200,000 of earnings will see their
liability drop by $1,306 in 2027.
❌ Wrong:
Low-income workers see modest increases to their net income from the
expanded EITC.
Families with children benefit substantially from the tax changes.
High earners also see significant reductions in their tax liability.
Tables and Data
Use tables liberally to present data clearly. Always include units and context.
Example 1: Tax parameters over time
| Year | Phase-in rate | Max credit | Phase-out start | Phase-out rate | | ---- | ------------- | ---------- | --------------- | -------------- | | 2025 | 15.3% | $1,774 | $13,706 | 15.3% | | 2026 | 15.3% | $1,815 | $14,022 | 15.3% | | 2027 | 15.3% | $1,852 | $14,306 | 15.3% |
Example 2: Household impacts
| Household composition | 2026 net income change | 2027 net income change | | ------------------------------ | ---------------------- | ---------------------- | | Single, no children, $10,000 | $66 | $68 | | Single, two children, $50,000 | $252 | $266 | | Married, no children, $200,000 | $853 | $1,306 |
Example 3: Ten-year costs
| Year | Federal cost ($ billions) | | ------- | ------------------------- | | 2025 | 14.3 | | 2026 | 14.4 | | 2027 | 14.7 | | 2025-34 | 143.7 |
Showing Calculations and Sourcing Claims
Show your work: When presenting derived values, spell out the calculation explicitly.
✅ Correct:
An individual accumulating wealth from $1.0 billion to $1.1 billion pays $55 million in tax on that $100 million increase: $55 million / $100 million = 55% average marginal rate.
At $2.0 billion, the tax is $100 million ($2.0B × 5% = $100M).
❌ Wrong:
An individual accumulating wealth from $1.0 billion to $1.1 billion pays $55 million in tax, representing a 55% average marginal rate.
At $2.0 billion, the tax is $100 million.
Tables before charts: For complex calculations, show worked examples in a table before displaying the full chart.
Example: Marginal rate calculation table
| Initial wealth | Initial rate | Initial tax | New wealth | New rate | New tax | Change in wealth | Change in tax | Marginal rate | |----------------|--------------|-------------|------------|----------|---------|------------------|---------------|---------------| | $1.000B | 0.0% | $0M | $1.1B | 5.0% | $55.0M | $100M | $55.0M | 55% | | $1.000B | 0.0% | $0M | $1.002B | 0.1% | $1.0M | $2M | $1.0M | 50% |
After showing the calculation in the table, present the full visualization.
Source all claims: Every numerical claim needs a source.
✅ Correct:
Based on an estimated $2 trillion in combined wealth held by California's roughly 200 billionaires, a 5% tax would raise approximately $100 billion.
(Links to source with wealth estimate)
The marginal tax rate calculations derive from the statutory text of California Initiative 25-0024, specifically Section 50301(b).
❌ Wrong:
Proponents estimate the tax would raise approximately $100 billion from roughly 200 California billionaires.
(No source provided for estimate)
If no primary source exists: Drop the claim entirely rather than citing secondary sources without methodology.
Avoid Superlatives
Replace superlative claims with specific comparisons.
✅ Correct:
PolicyEngine projects costs 40% higher than the Tax Foundation
The top decile receives an average benefit of $1,033
The reform reduces child poverty by 3.2 percentage points
This represents Montana's largest income tax cut since 2021
❌ Wrong:
PolicyEngine provides the most accurate cost projections
The wealthiest households receive massive benefits
The reform dramatically slashes child poverty
This is Montana's largest income tax cut in history
Structure and Organization
Follow a clear hierarchical structure with key findings up front.
Standard blog post structure:
# Title (H1)
Opening paragraph states what happened and when, with a link to PolicyEngine.
Key results in [year]:
- Cost: $245 million
- Benefits: 77% of residents
- Poverty impact: Reduces SPM by 0.8%
- Inequality impact: Raises Gini by 0.16%
## The proposal (H2)
Detailed description of the policy changes, often with a table showing
the specific parameter values.
## Household impacts (H2)
Specific examples for representative household types.
### Example 1: Single filer (H3)
Detailed calculation...
### Example 2: Family with children (H3)
Detailed calculation...
## Statewide impacts (H2)
Population-level analysis with charts and tables.
### Budgetary impact (H3)
Cost/revenue estimates...
### Distributional impact (H3)
Winners/losers by income decile...
### Poverty and inequality (H3)
Impact on poverty rates and inequality measures...
## Methodology (H2)
Explanation of data sources, modeling app
…
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [PolicyEngine](https://github.com/PolicyEngine)
- **Source:** [PolicyEngine/policyengine-claude](https://github.com/PolicyEngine/policyengine-claude)
- **License:** MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.