Dev Log

Copy edits across 3 pages: remove competitor framing, prune filler, gloss 'dais'

· Claude Opus 4.7 · Bot
copycontent-editvoiceservicesprojectsservice-areas

What was done

Stage 1 — /services/civil-engineering/

src/pages/services/civil-engineering/index.astro, body section “How we approach civil engineering” — removed two sentences that defined Bailey by contrast with “most firms” and replaced them with positive-framing copy in Bailey’s voice (per brand.md §09: “confident without arrogance”).

  • Sentence 1 removed: “Most civil engineering firms hand projects between departments — the feasibility team hands to the design team, the design team hands to the construction team, and the client briefs the same project three times. Bailey doesn’t work that way.”
    • Replacement: “Bailey keeps one team on a project from feasibility through construction observation.” Remainder of the paragraph (engineer-continuity prose) was kept and the tail reframed from “no handoffs” (negative) to concrete outcomes (“no re-briefing between phases, no constraint identified in feasibility that fails to make it into the drawings”).
  • Sentence 2 removed: “Construction observation is the last phase and the one most firms rush through.”
    • Replacement: “Construction observation is the phase that closes the work out, and Bailey treats it with the same rigor as design.”

Ran a Grep across all of src/pages/ for the flagged patterns (Most civil, Unlike other, Traditional engineering, most firms, other engineers) — no other matches. The civil engineering page was the only place carrying competitor-comparison wording.

Stage 2 — /projects/

src/pages/projects/index.astro — removed the entire trailing <p> that contained both flagged sentences:

  • “The project tracker shows active and recent work since October 2025.”
  • “Bailey’s 20-year history includes hundreds of earlier projects across Southern Idaho.”

The preceding coverage note (“Over 20 years, Bailey has delivered projects across all 14 Treasure Valley cities…”) remains and reads cleanly on its own. No orphan headings or broken markup.

Stage 3 — /service-areas/ada-county/meridian/

src/pages/service-areas/ada-county/meridian/index.astro — FAQ answer for “What is a development agreement and why does it matter in Meridian?” Added an inline gloss on first use of dais. Chose Option A (inline definition rather than replacement) because the surrounding copy is dense with municipal terminology (ACHD, DA, annexation, rezone, Council President Cavener) — readers here expect technical vocabulary and benefit from learning the term.

  • Before: “Negotiate DA language carefully before the hearing; renegotiating at the dais is difficult.”
  • After: “Negotiate DA language carefully before the hearing; renegotiating at the dais (the hearing itself, in front of council) is difficult.”

Stage 4 — verify

  • npm run build → 144 pages, 0 errors.
  • npm run verify → 17/17 passing.

Side-fix needed to get there: the devlog entry 2026-04-21-exclude-phase-6-construction.md had a frontmatter summary long enough that its rendered <meta name="description"> tag exceeded the 320-char budget enforced by src/scripts/verify-build.sh. Trimmed the trailing “Also corrected a stale schema comment…” clause; the lost context is already covered in the body of that devlog entry. Without this trim, the build was failing verification.

Why

  • Stage 1 (competitor-comparison scrub): User instruction; aligns with brand.md §09 voice guidance that Bailey should describe what it does, not contrast itself with “most firms.” Negative-framing copy sounds insecure and dates quickly.
  • Stage 2 (projects prune): User instruction. The removed sentences added no value — the first explained a limitation of the data shown on the page (rarely useful to lead readers with), and the second was a generic “we’ve done more than you see here” that the surviving coverage note already covers more concretely.
  • Stage 3 (dais gloss): User instruction with lean toward Option A. The gloss makes the page more useful as a reference without lowering the technical register.
  • Devlog summary trim: Necessary to pass verify-build.sh check 7 (meta description ≤ 320 chars).

Anything unexpected

Three items flagged for the user to decide on (not changed in this batch):

  1. Civil engineering page lists phase 6 in its service-to-phase mapping (src/pages/services/civil-engineering/index.astro:22-27, { number: 6, description: "Construction observation, inspections, comment-response cycles." }). This contradicts the scope rule we established yesterday — Bailey is engineer of record, not GC, so phase 6 (Construction) is a contractor phase. Construction observation is engineer-of-record oversight that really bridges phases 5 and 7 in Bailey’s process. This page-level phase pill isn’t subject to the Zod schema guard we added (that guard is on the projects collection only). Worth a follow-up to remap the civil-engineering service page to phases 1/3/4/5/7, not 1/3/4/6.

  2. Three additional “at the dais” references in FAQ content (src/content/faqs/entitlements.md:124, 138, src/content/faqs/neighborhood-meetings.md:51, src/content/faqs/public-hearings.md:94) are un-glossed. Stage 3 only fixed the Meridian service-area page as requested. Want the same inline gloss applied consistently across those four FAQ instances?

  3. Production build page count is 144, not 137. Not an error — the prompt’s expected baseline was stale. The extra pages are the /home-test/ variant added yesterday plus the 4 dev log entries created across yesterday and today (each renders at /log/<slug>/). Zero errors.

Files affected

  • Modified (copy):
    • src/pages/services/civil-engineering/index.astro
    • src/pages/projects/index.astro
    • src/pages/service-areas/ada-county/meridian/index.astro
  • Modified (devlog summary trim, for build hygiene):
    • src/content/devlog/2026-04-21-exclude-phase-6-construction.md
  • Created (this entry):
    • src/content/devlog/2026-04-22-copy-edits-batch.md
Feedback