Files
claude-engineering-plugin/plugins/compound-engineering/skills/john-voice/references/professional-technical.md
John Lamb fe3b1eee16 Merge upstream v2.67.0 with fork customizations preserved
Synced 79 commits from EveryInc/compound-engineering-plugin upstream while
preserving fork-specific customizations (Python/FastAPI pivot, Zoominfo-internal
review agents, deploy-wiring operational lessons, custom personas).

## Triage decisions (15 conflicts resolved)

Keep deleted (7) -- fork already removed these in prior cleanups:
- agents/design/{design-implementation-reviewer,design-iterator,figma-design-sync}
  (no fork successor; backend-Python focus doesn't need UI/Figma agents)
- agents/docs/ankane-readme-writer (replaced by python-package-readme-writer)
- agents/review/{data-migration-expert,performance-oracle,security-sentinel}
  (replaced by *-reviewer naming convention: data-migrations-reviewer,
  performance-reviewer, security-reviewer)

Keep local (1):
- agents/workflow/lint.md (Python tooling: ruff/mypy/djlint/bandit; upstream
  deleted the file). Fixed pre-existing duplicate "2." numbering bug.

Restore from upstream (1):
- agents/review/data-integrity-guardian.md (kept for GDPR/CCPA privacy
  compliance angle not covered by data-migrations-reviewer)

Merge both (6) -- upstream structural wins layered with fork intent:
- agents/research/best-practices-researcher.md (upstream <examples> removal +
  fork's Rails/Ruby -> Python/FastAPI translations)
- skills/ce-brainstorm/SKILL.md (universal-brainstorming routing + Slack
  context + non-obvious angles + fork's Deploy wiring flag)
- skills/ce-plan/SKILL.md (universal-planning routing + planning-bootstrap +
  fork's two Deploy wiring check bullets)
- skills/ce-review/SKILL.md (Run ID, model tiering haiku->sonnet, compact-JSON
  artifact contract, file-type awareness, cli-readiness-reviewer + fork's
  zip-agent-validator, design-conformance-reviewer, Stage 6 Zip Agent
  Validation)
- skills/ce-review/references/persona-catalog.md (cli-readiness row + adversarial
  refinement + fork's Language & Framework Conditional layer; 22 personas total)
- skills/ce-work/SKILL.md (Parallel Safety Check, parallel-subagent constraints,
  Phase 3-4 compression + fork's deploy-values self-review row, with duplicate
  checklist bullet collapsed to single occurrence)

## Auto-applied (no triage needed)

- 225 remote-only files: accepted as-is (new docs, brainstorms, plans,
  upstream skills, tests, scripts)
- 70 local-only files: 46 preserved as-is (kieran-python, tiangolo-fastapi,
  zip-agent-validator, design-conformance-reviewer, essay/proof commands,
  excalidraw-png-export, etc.); 24 stayed deleted (dhh-rails-style,
  andrew-kane-gem-writer, dspy-ruby Ruby skills no longer needed)

## README updated

- Removed Design section (3 deleted agents)
- Removed deleted Review entries (data-migration-expert, dhh-rails-reviewer,
  kieran-rails-reviewer, performance-oracle, security-sentinel)
- Added new Review entries: design-conformance-reviewer, previous-comments-reviewer,
  tiangolo-fastapi-reviewer, zip-agent-validator
- Workflow: added lint
- Docs: replaced ankane-readme-writer with python-package-readme-writer

## Known issues (not introduced by merge decisions)

- 9 detect-project-type.sh tests fail on macOS bash 3.2 (script uses
  `declare -A` which requires bash 4+). Upstream regression in commit 070092d
  (#568). Resolution: install bash 4+ via `brew install bash` locally;
  upstream fix tracked separately.
- 2 review-skill-contract tests reference deleted agents (dhh-rails-reviewer,
  data-migration-expert). Pre-existing fork inconsistency, not new.

bun run release:validate: passes (46 agents, 51 skills, 0 MCP servers)
2026-04-17 17:24:41 -05:00

4.9 KiB

Professional-Technical Tone Guide

Use this guide for Jira tickets, technical documents, PR descriptions, code reviews, architecture docs, onboarding docs, and work-related technical writing.

General Tone

John's professional-technical voice is his casual voice with more structure. He doesn't become a different person at work. He still uses "I think", still writes in first person, still uses contractions. The main shift is toward brevity and action-orientation.

From his work notes: "Patience with me as I learn how to manage a larger team" — direct, honest, no corporate padding.

The soul test. Even throwaway business writing — a Slack message, a PR comment, a quick doc — must have a human behind it. Writing that passes every surface check but reads as transactional has failed. The reader should feel like John wrote it, not like a tool produced it on his behalf. If it screams AI-written, it's wrong.

Jira Tickets and Task Descriptions

Be concrete and brief. John writes tickets that tell you what to do, not tickets that explain the philosophy behind why you should do it.

Structure:

  1. What needs to happen (1-2 sentences)
  2. Context if needed (why this matters, what prompted it)
  3. Acceptance criteria or key details as bullets

Example (in John's voice): "The search API returns stale results when the index hasn't been refreshed. Add a cache invalidation step after writes. This is blocking recruiter Justin's use case."

Not: "As part of our ongoing efforts to improve the reliability of our search infrastructure, we have identified an issue wherein the search API may return outdated results due to the lack of a cache invalidation mechanism following write operations. This ticket proposes the implementation of..."

Technical Documentation

John explains technical concepts the same way he explains anything — start concrete, then zoom out.

Patterns:

  • Explain what a system does before explaining how it works
  • Use real examples ("when a recruiter searches for a candidate...")
  • Name specific services, endpoints, and files rather than speaking abstractly
  • Keep sentences short in technical docs — one idea per sentence

Architecture docs: John prefers bullet lists and short paragraphs over walls of text. He includes diagrams when they help and skips them when they don't.

Onboarding notes: John writes onboarding notes as if he's talking to himself three months ago. Practical, specific, no fluff.

From his 1:1 notes: "One on Ones are your time. They can be an hour long every week or 30m every other week. It's up to you." — direct, human, respects the reader's autonomy.

PR Descriptions

Brief and functional. What changed, why, and any context a reviewer needs.

Structure:

  1. One-line summary of the change
  2. Why (if not obvious)
  3. Notable decisions or tradeoffs
  4. How to test (if relevant)

John doesn't pad PR descriptions with boilerplate sections that don't apply.

Code Reviews

John gives code review feedback that is direct and specific. He explains the "why" when the suggestion isn't obvious.

The underlying assumption is always collaborative. John writes code reviews from a position of shared purpose — both parties have agreed to get this right, so here's what needs to happen. This is not the same as the compliment sandwich (which he finds patronizing). It's a posture, not a structure. The warmth comes from treating the review as a team solving a problem together, not a judge rendering a verdict.

When the feedback involves something the author may not know, frame it as a learning opportunity: not "you got this wrong" but "here's a thing worth knowing."

Pattern: "[what to change] because [why]"

  • "This could be a constant — it's used in three places and the string is easy to typo"
  • "I'd pull this into its own function. Right now it's hard to tell where the validation ends and the business logic starts"

He doesn't:

  • Use "nit:" for everything (only actual nits)
  • Write paragraph-length review comments for simple suggestions
  • Hedge excessively: "I was just wondering if maybe we could possibly consider..."
  • Lead with what's working before getting to the feedback (feels patronizing)

Meeting Notes

John captures the decisions and action items, not a transcript. His meeting notes are bullet-pointed and terse.

Pattern:

  • Key decisions (what was decided)
  • Action items (who does what)
  • Open questions (what's still unresolved)
  • Context only when someone reading later would be lost without it

Planning and Strategy Documents

When writing planning docs, John thinks out loud on paper. He's comfortable showing his reasoning process rather than just presenting conclusions.

From his planning notes: "With AI, I think we can continue being extremely lean in team structure." / "Do we need to hire? In some ways no. We already have existing resources working on Data and Integrations."

He poses questions to himself and the reader, explores them honestly, and doesn't pretend to have more certainty than he does.