
Photoreal night interior of the same cedar observatory cabin: desk with star charts and a red lamp, telescope eyepiece to the white dome hatch, cast-iron wood stove with stovepipe, leather armchair, and two amber front windows framing the mountain ridge and Milky Way. Step 3 of the Mountain Observatory Cabin workflow.
Interior room of a small cedar observatory cabin at night: walls and ceiling of warm vertical cedar boards matching the exterior, a wooden desk with open star charts and a red-glowing desk lamp, a telescope eyepiece and black telescope tube angled up through a ceiling hatch into the white hemispherical dome above, and a small black cast-iron wood stove with orange firelight and a black steel stovepipe. A worn leather armchair with a wool blanket sits between the desk and the stove; a wall shelf holds eyepiece cases and a brass star globe. The camera stands inside looking toward two rectangular front windows that glow amber from inside and frame a jagged mountain ridge, dwarf pines, old snow, and a bright Milky Way beyond. Lighting mixes dim red task light and warm firelight; the windows are cooler and darker outside. Photorealistic interior photography, 24mm lens, 16:9, cozy and quiet, no people, no text.

Colorful isometric voxel game scene of a wooden mountain onsen inn at dusk: steam from stone baths, pine trees, stone path, glowing paper lanterns, violet-blue sky. Clean blocky game art, no UI or characters.
An isometric voxel game scene of a mountain hot spring inn at dusk. Colorful blocky voxels build a wooden onsen inn with sliding doors, a tiled roof, and paper lanterns glowing warm orange along a stone path. Steam rises in soft white cubes from outdoor stone baths. Pine trees and rocky cliffs frame the inn; a small stream of blue voxels runs past mossy rocks. Lantern light pools on the path while the sky shifts violet to deep blue. Cheerful game-art palette, clean voxel edges, slight ambient occlusion in crevices, no UI, no text, no characters. Looking slightly down from a classic isometric angle.
Build an image-ready design brief for a lakeside pottery studio with a wood-fired kiln: shore orientation, compact form with kiln shed and dock, materials palette, wheel-room layout, kiln safety notes, fixed visual details for consistent images, and two prompt seeds (golden-hour exterior and blue-hour workbench).
Act as an architectural concept designer who specializes in small craft studios beside water. Help me build a clear, image-ready design brief for a lakeside pottery studio with a wood-fired kiln. First ask me, in one short list, for: the lake setting (forest shore, rocky cove, open meadow), clay and firing style (stoneware, earthenware, wood-fired, electric assist), studio vibe (rustic cedar, modern glass-and-timber, Japanese-inspired), footprint budget (modest shed, mid-size workshop, generous), and any must-haves (dock, glaze sink, drying racks, guest seating, overnight loft). Then produce the brief with these sections: 1. **Concept in One Sentence**: the feeling and purpose of the studio. 2. **Site and Orientation**: where it sits on the shore, which way the big windows face for light and lake view, kiln shed placement for smoke and wind, path from parking or path to the dock. 3. **Form and Massing**: footprint, roof shape, open bay doors for the wheel room, and a separate or attached kiln shed, with rough dimensions. 4. **Materials and Palette**: exterior cladding (for example weathered cedar), roofing, window frames, dock boards, and interior wood and plaster tones. 5. **Interior Layout**: potter's wheels by the lake-facing windows, wedging table, glaze bench, drying shelves, sink, wood stove if needed, and storage for clay and tools. 6. **Kiln and Safety Notes**: wood-fired kiln orientation, ash and smoke path, safe clearances, and how the shed opens for loading. 7. **Fixed Visual Details**: a numbered list of 8 to 10 details that must stay identical in every image of this studio (cladding, roof color, dock shape, kiln chimney, window count, tree types, water color, golden-hour light direction). 8. **Image Prompt Seeds**: two short prompt starters, one for a golden-hour exterior with dock and kiln shed, and one for a blue-hour interior workbench looking out to the water. Each must restate the fixed visual details and put the key subject in the first sentence. Keep it concise, practical, and buildable. Avoid naming real architects or brands. Flag anything unsafe for wood firing near trees or a dock.

Photoreal golden-hour exterior of a weathered cedar pottery studio on a lake dock: open bay doors showing wheels, separate wood-fired kiln shed with brick chimney, stacked firewood, pines, calm water reflections. Step 2 of the Lakeside Pottery Studio workflow.
A cedar lakeside pottery studio with a wood-fired kiln shed at golden hour, exterior view from the dock side. Weathered vertical cedar boards, a low pitched metal roof, and wide open bay doors reveal two potter's wheels and drying shelves inside. A small wooden dock extends into calm lake water reflecting warm amber light. Beside the studio, a separate kiln shed with a brick chimney sends a thin thread of pale smoke. Stone path, stacked firewood, a few unfinished pots on outdoor racks, pine and birch trees along the shore. Soft long shadows, golden rim light on the cedar, peaceful craft-retreat mood. Photoreal, landscape 16:9. No people, no text, no cars.

Photoreal blue-hour interior of the lakeside pottery studio: wedging workbench with clay tools, shelves of drying pots, wide window to violet lake dusk, dock and kiln chimney visible outside. Warm lamp vs cool window light. Step 3 of the Lakeside Pottery Studio workflow.
Interior workbench room of a cedar lakeside pottery studio at blue hour, looking out to the water. A heavy wooden wedging table fills the foreground with clay tools, a wire cutter, and a few leather-hard bowls. Shelves of drying pots line the left wall. Through a wide rectangular window and open barn-style double bay doors with X-braces, the lake sits deep blue under a violet dusk sky; the wide wooden plank dock with its T-shaped extension, a small red rowboat, and slender birch trees are visible outside. Warm task lamp light on the bench contrasts cool blue window light. Vertical cedar interior boards, plaster accents, pottery wheel at the right edge. Same studio as the golden-hour exterior: weathered vertical cedar boards, dark pitched metal roof with a brick chimney, wide plank dock, two small side windows, pines and birches. Photoreal, landscape 16:9. No people, no text.
Build an image-ready brief for a small hillside vineyard tasting pavilion: slope orientation and sun path, compact form with downhill terrace, a four-to-five material palette, vine-row landscape, fixed visual details, and two exterior prompt seeds (harvest morning and sunset terrace).
Act as an architectural concept designer who writes image-ready design briefs. Help me shape a small hillside vineyard tasting pavilion: a single-story building where visitors taste wine and look out over the vine rows. Your brief must be specific enough that two separate image generations (an establishing exterior and a second exterior angle) show the same building. First ask me, in one short message, for: - Region and climate (for example Mediterranean, temperate river valley, high desert) and the season I want to show - Slope direction and the main view (valley, lake, distant mountains, village) - Capacity (how many guests at once) and whether there is a small barrel room or kitchen - Material preferences and anything I want to avoid (glass boxes, rustic kitsch, very modern minimalism) - Mood words (calm, sunny, earthy, elegant, family-run) Then produce the brief with these sections: 1. **Site and Orientation**: where the pavilion sits on the slope, which side faces the view, sun path for morning and sunset, and how a gravel path climbs from the parking area through the vines. 2. **Building Form**: footprint size, roof shape and pitch, overhang depth, the long covered terrace on the downhill side, and the number and position of large openings. Keep it compact and believable. 3. **Materials Palette**: exactly four or five materials with colors (for example local limestone walls, oiled oak beams, clay roof tiles, bronze window frames, gravel terrace) and where each one appears. 4. **Landscape**: vine row direction, an old olive or oak tree near the entrance, low stone retaining walls, lavender or herb borders, and outdoor tables. 5. **Fixed Visual Details**: a numbered list of 8 to 10 details that must stay identical in every image (roof type and color, wall material, number of terrace arches or posts, door color, chimney or none, the signature tree, lighting fixtures). These details make the images consistent. 6. **Prompt Seed A - Establishing Exterior**: a ready-to-paste image prompt under 150 words for a morning or harvest-season exterior from the uphill path, with the building and its key objects in the first sentence. 7. **Prompt Seed B - Second Exterior Angle**: a ready-to-paste image prompt under 150 words for a sunset view from the downhill vine rows looking up at the terrace, repeating every fixed visual detail in plain words. 8. **Practical Notes**: three short notes on shade, accessibility (step-free entry), and drainage on a slope. Rules: no people as the main subject, no text or logos in the image prompts, no interiors in the seeds (image models often ignore furniture). Use short paragraphs and lists.

Photoreal harvest-morning exterior of a single-story limestone tasting pavilion with a terracotta tile roof, oak-post terrace, bronze glass doors, green front door, an old olive tree, and vine rows heavy with grapes running down to a misty valley. Step 2 of the Vineyard Tasting Pavilion workflow.
A single-story limestone tasting pavilion with a terracotta clay tile roof sits on a gentle vineyard hillside on a clear harvest morning, seen from the uphill gravel path. Pale honey-colored limestone walls, a low-pitched hipped roof with deep eaves, and a long covered terrace with five oiled oak posts on the downhill side. Tall bronze-framed glass doors and a deep green wooden front door. A large old olive tree with a twisted trunk stands beside the entrance, and a short limestone chimney rises from the left end of the roof. Neat vine rows heavy with dark grapes run downhill toward a misty river valley. Low dry-stone walls, lavender borders, and wooden crates of harvested grapes stacked near the path. Soft golden side light, long morning shadows, light haze in the valley. Photoreal architectural photography, landscape 16:9. No people, no text, no signs, no cars.

Photoreal sunset view up the vine rows to the same limestone tasting pavilion: five-post oak terrace with string lights and set tables, terracotta hipped roof, bronze glass doors, left-end chimney, olive tree, lavender and stone walls. Step 3 of the Vineyard Tasting Pavilion workflow.
The long covered terrace of a single-story limestone tasting pavilion at sunset, seen from the downhill vine rows looking up the slope. The terrace runs along the long side of the building with five dark oiled oak posts, wooden tables with empty wine glasses, and warm string lights glowing under the deep eaves. Same building: pale honey-colored limestone walls, low-pitched gabled terracotta clay tile roof, tall bronze-framed glass doors along the terrace, a short square limestone chimney rising from the left gable end, a deep green double door in that left gable wall, and the large old olive tree with a twisted trunk standing at the left corner beside that door. Grape-heavy vine rows lead the eye uphill to the pavilion, with low dry-stone walls and lavender borders below the terrace. Sky in apricot and rose, sun setting behind the viewer so the walls glow warm amber, soft shadows between the vines. Photoreal architectural photography, landscape 16:9. No people, no text, no signs, no cars.
Opinionated preferences for building and operating small, maintainable Go backend services.
# Go service taste of a backend engineer - Use the standard library net/http router from Go 1.22 before reaching for a framework. Confidence: 0.85 - Lay the project out as cmd/<service>/main.go plus internal/ packages, and skip pkg/. Confidence: 0.80 - Keep main.go thin: read config, wire dependencies and start the server. Confidence: 0.90 - Pass context.Context as the first argument to every function that does I/O. Confidence: 0.95 - Wrap errors with fmt.Errorf and %w, and check them with errors.Is and errors.As. Confidence: 0.95 - Log with log/slog in JSON format and include a request ID on every line. Confidence: 0.90 - Read configuration from environment variables into one typed struct at startup. Confidence: 0.85 - Fail fast at startup when required configuration is missing. Confidence: 0.90 - Write SQL by hand and generate typed code with sqlc instead of using an ORM. Confidence: 0.80 - Use pgx as the Postgres driver with a connection pool. Confidence: 0.85 - Define small interfaces in the package that consumes them, not the one that implements them. Confidence: 0.85 - Use table-driven tests with t.Run subtests. Confidence: 0.90 - Run go test with -race in CI on every pull request. Confidence: 0.90 - Lint with golangci-lint using a short, curated list of linters. Confidence: 0.80 - Shut down gracefully on SIGTERM with signal.NotifyContext and server.Shutdown. Confidence: 0.90 - Set explicit read, write and idle timeouts on every http.Server and http.Client. Confidence: 0.90 - Expose /healthz for liveness and /readyz for readiness. Confidence: 0.85 - Avoid global state and package-level init functions with side effects. Confidence: 0.85 - Start goroutines only with a clear owner and stop condition, using errgroup for groups. Confidence: 0.85 - Build a static binary into a distroless image with a multi-stage Dockerfile. Confidence: 0.80 - Add generics only when they remove real duplication. Confidence: 0.70
Build an image-ready brief for a small rammed earth village library: plaza and reading garden orientation, compact form with a signature reading tower, a four-to-five material palette, native landscape, fixed visual details, and two exterior prompt seeds (morning plaza and dusk garden).
Act as an architectural concept designer who writes image-ready design briefs. Help me shape a small rammed earth community library for a village or small town: a single-story building with a reading room, a children's corner, and a shaded outdoor reading garden. Your brief must be specific enough that two separate image generations (an establishing exterior and a second exterior view) show the same building. First ask me, in one short message, for: - Region and climate (for example dry highland, warm Mediterranean hills, semi-arid plains) and the season I want to show - The site: village square, edge of a park, hillside lane, or beside a school - Collection size and capacity (how many readers at once), and whether there is a small community room - Material preferences and anything I want to avoid (glass boxes, heavy concrete, rustic kitsch) - Mood words (welcoming, quiet, sunlit, earthy, civic, playful) Then produce the brief with these sections: 1. **Site and Orientation**: where the library sits, which side faces the public plaza and which faces the reading garden, the sun path for morning and dusk, and how people approach on foot. 2. **Building Form**: footprint size, roof type (flat, low mono-pitch, or gently curved), roof edge and overhang, the shaded entrance porch, the number and position of large openings, and one signature element such as a round reading tower or a wide clerestory band. Keep it compact and buildable. 3. **Materials Palette**: exactly four or five materials with colors (for example layered ochre and rust rammed earth walls, pale timber columns and soffits, a thin dark steel roof edge, local stone paving, clay planters) and where each appears. 4. **Landscape**: native trees and grasses, one signature tree near the entrance, a shallow stone water channel or none, benches, and bicycle stands. 5. **Fixed Visual Details**: a numbered list of 8 to 10 details that must stay identical in every image (wall color and visible earth layers, roof shape, number of porch columns, window count and shape, door color, the signature element and its position, the signature tree and its side, lighting fixtures). These details make the images consistent. 6. **Prompt Seed A - Establishing Exterior**: a ready-to-paste image prompt under 150 words for a bright morning exterior from the public plaza, with the building and its key objects in the first sentence. 7. **Prompt Seed B - Second Exterior View**: a ready-to-paste image prompt under 150 words for a dusk view from the reading garden side with warm light glowing from the windows, repeating every fixed visual detail in plain words and stating which side each element appears on from this viewpoint. 8. **Practical Notes**: three short notes on passive cooling and shade, step-free access, and protecting earth walls from rain (roof overhang, stone plinth). Rules: no people as the main subject, no text, signs, or logos in the image prompts, no interiors in the seeds (image models often ignore furniture). Use short paragraphs and lists.

Photoreal morning exterior of a single-story rammed earth village library: layered ochre and rust walls, a round reading tower at the right end, six timber porch columns, sky-blue door, an old juniper, and a stone water channel. Step 2 of the Rammed Earth Village Library workflow.
A single-story rammed earth village library with a round rammed earth reading tower at its right end faces a sunny stone-paved plaza on a clear morning. The long walls show distinct horizontal layers of ochre, sand, and rust-red earth on a low grey stone plinth. A flat roof with a thin dark steel edge projects into a deep shaded entrance porch held up by six slender pale timber columns. Behind the porch, three tall narrow windows with dark bronze frames sit on either side of a wide sky-blue wooden double door. The cylindrical tower is slightly taller than the main roof, with a ring of small square windows near its top. A broad old juniper tree with a twisted trunk stands to the left of the entrance, and a shallow stone water channel runs across the plaza in front of the porch. Clay planters with lavender and dry grasses, two timber benches, and a row of bicycle stands. Soft golden side light, crisp shadows, pale blue sky over dry hills. Photoreal architectural photography, landscape 16:9. No people, no text, no signs, no cars.

Photoreal dusk view of the same rammed earth library from its reading garden: layered earth walls, the round reading tower lit like a lantern at the left end, a six-column timber pergola, lavender, grasses, and path lights. Step 3 of the Rammed Earth Village Library workflow.
The rear side of the same single-story rammed earth village library at dusk, seen from its quiet reading garden, with warm golden light glowing from wide windows and from the round rammed earth reading tower now at the left end. Same building: long walls with distinct horizontal layers of ochre, sand, and rust-red earth on a low grey stone plinth, a flat roof with a thin dark steel edge that overhangs deeply, and tall narrow windows with dark bronze frames. The cylindrical tower is slightly taller than the main roof, with a continuous band of tall dark-framed windows wrapping around its top, glowing like a lantern. Along this garden side, a shallow timber pergola with six slender pale timber columns shades a stone terrace with low timber reading benches. The garden has gravel paths, native dry grasses, lavender in clay planters, and small warm path lights, and the top of the broad old juniper tree from the front plaza is just visible above the roof on the right. Deep blue twilight sky with a thin crescent moon and the first stars. Photoreal architectural photography, landscape 16:9. No people, no text, no signs, no cars.
Build an image-ready and motion-ready brief for one hero shot of an old stone watermill on a stream: architecture, waterwheel, water and landscape, light and mist, fixed details, a motion map, and two prompt seeds: a 16:9 still image and an image-to-video animation.
Act as a cinematic environment designer who writes image-ready and motion-ready scene briefs. Help me design one hero shot of a small old stone watermill on a stream, which will first be generated as a still image and then animated into a short video that uses that image as its first frame. Your brief must make the still image rich in elements that can move naturally (falling water, a turning wheel, mist, leaves, smoke, birds, flickering lights) while keeping the composition calm and easy to animate. My starting choices: - Region and landscape: temperate forest valley - Season and time of day: autumn dawn - Mill size and age: two-story fieldstone mill, about 200 years old - Visual style: photoreal landscape photography - Mood words: quiet, golden, misty, timeless First ask me, in one short message, for anything missing: the camera viewpoint I prefer (across the stream, from a small footbridge, or low near the water), whether the mill is still working or restored as a home or museum, and anything to avoid (people, animals, modern cars, power lines, signs). Then produce the brief with these sections: 1. **Scene Overview**: two or three sentences describing the place, the season, the light, and the story of the moment. 2. **Mill Architecture**: wall stone color and texture, roof material and shape, number of floors and windows, door, chimney, and the waterwheel type (overshot, undershot, or breastshot) with its size, material, number of paddles or buckets, and which side of the building it sits on. Include the wooden chute or millrace that feeds it. 3. **Water and Landscape**: the stream's width and flow, small cascades or a weir, rocks and moss, the type and color of trees, the ground cover, and the background hills or forest. 4. **Light and Atmosphere**: sun direction and color, mist or fog layers, warm lights in windows, chimney smoke, and how the light touches the water. 5. **Fixed Visual Details**: a numbered list of 8 to 10 details that must stay identical in the still image and in the video (wheel side and size, roof color, number of lit windows, chimney position, chute shape, tree colors, camera position, framing). 6. **Motion Map**: a table of every element that can move in the video, with columns: element, type of motion, direction, speed (very slow, slow, medium), and how strongly it should move. Include the camera move. Keep total motion subtle and physically plausible. 7. **Prompt Seed A - Hero Still Image**: a ready-to-paste image prompt under 170 words for a wide landscape 16:9 frame, with the mill, the waterwheel, and the stream in the first sentence, ending with: no people, no text, no signs. 8. **Prompt Seed B - Image-to-Video Animation**: a ready-to-paste video prompt under 120 words that starts from the hero still as the first frame, describes one slow camera move and the natural motions from the Motion Map for about 6 seconds, and says to keep the mill, the wheel, and the framing exactly as in the image with no new objects. Rules: no people or animals as the main subject, no text, signs, or logos, no fast camera moves or cuts, and no motion that breaks physics (water must flow downhill, the wheel turns in the direction the water pushes it). Use short paragraphs and lists.

Photoreal autumn dawn shot of an old fieldstone watermill with a wooden overshot waterwheel and chute, a mossy slate roof, glowing windows, chimney smoke, a small rocky cascade, low mist, and maples in orange and gold. Step 2 of the Stone Watermill workflow.
An old two-story fieldstone watermill with a large wooden overshot waterwheel on its right side stands beside a clear forest stream at autumn dawn. A raised wooden chute carries water onto the top of the wheel, and the water spills from its wooden buckets in bright splashing streams into the stream below. The mill has warm grey and honey-colored stone walls, a steep dark slate roof covered in moss, small white-framed windows with two glowing warm yellow on the ground floor, and a stone chimney on the left end with a thin trail of pale smoke. In the foreground, the stream tumbles over a low step of mossy rocks in a small cascade. Maple and beech trees in orange, red, and gold surround the mill, with fallen leaves floating on the water. Soft low mist drifts over the stream, and golden sunrise light breaks through the trees from the left. A few small birds fly in the pale sky above the roof. Photoreal landscape photography, calm and timeless mood. Wide landscape 16:9. No people, no text, no signs, no cars.
Animate the step 2 watermill image as the first frame into a calm 6-second shot: the overshot wheel turns under the chute, the stream foams over mossy rocks, mist drifts, leaves fall, chimney smoke curls, and the camera slowly pushes in. Step 3 of the Stone Watermill workflow.
Start from the step 2 image "Stone Watermill on a Forest Stream at Autumn Dawn" as the exact first frame, and animate it into a calm 6-second cinematic shot. Keep the stone mill, the slate roof, the wooden overshot waterwheel on the right, the chute, the windows, the trees, and the framing exactly as in the image. The waterwheel turns slowly and steadily, driven by water pouring from the wooden chute onto its top, with bright water spilling from its buckets and splashing into the stream. The stream flows toward the camera and tumbles over the mossy rocks in the foreground with soft white foam. Low mist drifts slowly across the water from left to right. A few orange and gold leaves fall gently from the maples and float downstream. Thin pale smoke rises and curls from the chimney, the two lit windows glow with a faint warm flicker, and the small birds glide across the sky. Golden dawn light slowly brightens. The camera makes one very slow, smooth push-in toward the mill. Natural, realistic motion, no cuts, no new objects, no people, no text.Opinionated conventions for designing, evolving and operating GraphQL APIs.
# GraphQL API taste of a platform engineer - Design the schema around client use cases and domain language, not around database tables. Confidence: 0.90 - Generate types for both server and client from the schema (GraphQL Code Generator or equivalent); never hand-write response types. Confidence: 0.90 - Make fields non-null by default only when the server can always resolve them; keep fields that depend on other services nullable so one failure does not null out the whole response. Confidence: 0.80 - Use one input object per mutation (createOrder(input: CreateOrderInput!)) and return a payload type, not the bare entity. Confidence: 0.85 - Return expected business errors as typed union members in the payload (e.g. OrderCreated | InsufficientStock); reserve the top-level errors array for unexpected failures. Confidence: 0.75 - Paginate lists with Relay-style cursor connections (edges, node, pageInfo) and cap first/last at a sane maximum. Confidence: 0.80 - Batch and cache data loading per request with DataLoader to kill N+1 queries. Confidence: 0.95 - Enforce query depth and complexity limits at the gateway. Confidence: 0.90 - Use persisted queries (allowlisted operation hashes) for first-party clients in production. Confidence: 0.80 - Disable introspection on public production endpoints unless the API is meant to be public. Confidence: 0.70 - Evolve the schema additively and mark old fields with @deprecated(reason: ...); never version the endpoint with /v2. Confidence: 0.90 - Remove a deprecated field only after field-usage metrics show no traffic for a full release cycle. Confidence: 0.85 - Run schema diff checks in CI and fail the build on breaking changes. Confidence: 0.90 - Use globally unique opaque IDs and implement the Node interface for refetching. Confidence: 0.70 - Keep resolvers thin: they call domain services, and authorization lives in that service layer, not in resolver if-statements. Confidence: 0.85 - Name operations in every client query so traces, logs and metrics are readable. Confidence: 0.90 - Colocate fragments with the UI components that use them. Confidence: 0.80 - Prefer custom scalars (DateTime, URL, Email) with validation over plain String. Confidence: 0.75 - Use subscriptions only for genuinely real-time data; polling is fine for anything that changes every few minutes. Confidence: 0.70 - Reach for federation only when several teams own separate subgraphs; one team means one schema. Confidence: 0.75 - Trace every resolver with OpenTelemetry and alert on slow fields, not just slow requests. Confidence: 0.80 - Document every type and field with schema descriptions; the schema is the API reference. Confidence: 0.85
Opinionated conventions for designing reliable event-driven and message-based systems.
# Event-Driven Architecture taste of a distributed systems engineer - Use events to announce facts that already happened (OrderPlaced), and commands only for requests to a single owner (ChargeCard). Confidence: 0.90 - Name events in the past tense using domain language, never after the producing table or service. Confidence: 0.85 - Define every event with a versioned schema (Avro, Protobuf or JSON Schema) in a registry and check compatibility in CI. Confidence: 0.90 - Evolve schemas only with backward-compatible changes; publish a new event type for breaking changes. Confidence: 0.85 - Assume at-least-once delivery and make every consumer idempotent with a deduplication key. Confidence: 0.95 - Publish events through the transactional outbox pattern so database writes and messages never diverge. Confidence: 0.90 - Include event id, type, version, timestamp, correlation id and causation id in every envelope. Confidence: 0.85 - Keep event payloads self-contained enough for common consumers, but do not dump whole aggregates. Confidence: 0.75 - Partition by aggregate id when ordering matters, and never rely on global ordering. Confidence: 0.85 - Route poison messages to a dead-letter queue after bounded retries with exponential backoff and jitter. Confidence: 0.90 - Alert on consumer lag and dead-letter queue depth, not just on broker health. Confidence: 0.90 - Propagate trace context through message headers so one request can be followed across services. Confidence: 0.85 - Use sagas with explicit compensating actions for multi-service workflows instead of distributed transactions. Confidence: 0.80 - Prefer choreography for simple flows and a dedicated orchestrator once a workflow has more than a few steps. Confidence: 0.70 - Reach for event sourcing only where an audit trail or temporal queries are real requirements. Confidence: 0.75 - Make replays safe: consumers must tolerate reprocessing history from any offset. Confidence: 0.80 - Set retention to match how long consumers might need to rebuild state, and document it per topic. Confidence: 0.70 - Give each topic one owning team that controls its schema and lifecycle. Confidence: 0.85 - Keep synchronous calls for queries that need an immediate answer; do not force request-response through a queue. Confidence: 0.80 - Test consumers with contract tests against the registered schema and producers with outbox integration tests. Confidence: 0.80 - Keep a living catalog (AsyncAPI or similar) of topics, producers and consumers. Confidence: 0.75
Opinionated conventions for building modern iOS apps with SwiftUI and Swift Concurrency.
# SwiftUI iOS App taste of a senior iOS developer - Build new screens in SwiftUI and drop to UIKit only through UIViewRepresentable for gaps. Confidence: 0.85 - Use the Observation framework (@Observable) for view models on iOS 17+, not ObservableObject with @Published. Confidence: 0.85 - Keep views small and composable; extract a subview once a body passes about 50 lines. Confidence: 0.80 - Own state with @State at the lowest view that needs it and pass bindings down instead of global singletons. Confidence: 0.85 - Use Swift Concurrency (async/await, actors, structured tasks) everywhere; no new completion-handler or Combine-based APIs. Confidence: 0.85 - Start async work with the .task modifier so it is cancelled automatically when the view disappears. Confidence: 0.90 - Turn on strict concurrency checking (Swift 6 language mode) and fix Sendable warnings early. Confidence: 0.80 - Drive navigation with NavigationStack and a typed path, routed through a small coordinator or router object. Confidence: 0.80 - Inject dependencies through initializers or the Environment so previews and tests can swap in fakes. Confidence: 0.85 - Split features into local Swift packages managed by Swift Package Manager; avoid CocoaPods for new projects. Confidence: 0.85 - Give every view a #Preview with realistic sample data, including empty, loading and error states. Confidence: 0.85 - Model loading state as an enum (idle, loading, loaded, failed) rather than several booleans. Confidence: 0.90 - Use SwiftData for simple local persistence and Core Data or GRDB when you need fine-grained migrations or performance. Confidence: 0.65 - Support Dynamic Type, Dark Mode and VoiceOver labels from the first commit. Confidence: 0.90 - Use SF Symbols and semantic system colors before adding custom assets. Confidence: 0.80 - Localize with String Catalogs from day one, even for a single-language launch. Confidence: 0.75 - Unit test view models and services with Swift Testing; keep UI tests to a few critical flows. Confidence: 0.80 - Profile with Instruments before optimizing and watch for unnecessary view body recomputation. Confidence: 0.75 - Never block the main thread with networking, decoding or disk I/O. Confidence: 0.95 - Store secrets and tokens in the Keychain, never in UserDefaults or the bundle. Confidence: 0.95 - Ship through Xcode Cloud or fastlane with automatic build numbers and TestFlight for every merge to main. Confidence: 0.75 - Use a structured Logger (os.Logger) with categories instead of print statements. Confidence: 0.85

Photoreal dusk shot of a square sandstone caravanserai with two round towers and a lantern-lit arched gate, five camels with riders walking toward it across rippled sand, three palms by the right tower, and an orange-to-violet starry sky. Step 2 of the Desert Caravanserai workflow.
An old square sandstone caravanserai stands in a wide sand desert at dusk while a line of five camels with seated riders walks toward its gate. The fortress fills the center-right of the frame: a crenellated wall with small slit windows between two round crenellated corner towers, and in the middle a tall pointed horseshoe-arched gateway that opens onto warmly lit inner arches of the courtyard, with two small glowing lanterns on the wall on either side of the gate. On the left, the five camels with riders walk in a single file to the right across the rippled sand toward the gateway, their long shadows stretching beside them. Three palm trees grow at the right side by the right tower: two tall palms against the tower and one shorter palm further right. The sky glows deep orange and peach at the lower left horizon and fades upward into violet and indigo filled with the first stars, with a few thin streaky clouds on the left. Low dunes line the horizon on both sides. The foreground is a wide band of wind-rippled sand with a few sparse dry shrubs near the walls. Photoreal cinematic travel photography, calm and quiet mood as dusk turns to night. Wide landscape 16:9. No close-up faces, no text, no signs, no logos.
Opinionated conventions for building reliable data pipelines and analytics warehouses.
# Data Pipeline taste of a data engineer - Prefer ELT: land raw data unchanged first, then transform inside the warehouse. Confidence: 0.85 - Keep raw, staging and mart layers separate, and never let dashboards read from raw tables. Confidence: 0.90 - Model transformations in dbt (or SQLMesh) as version-controlled SQL with code review like any other code. Confidence: 0.90 - Make every job idempotent: rerunning a day must produce the same result without duplicates. Confidence: 0.95 - Partition large tables by event date and process data in date-bounded increments. Confidence: 0.85 - Backfills are a first-class operation with a documented command, not a manual one-off script. Confidence: 0.85 - Add tests for uniqueness, not-null, accepted values and referential integrity on every important model. Confidence: 0.90 - Define data contracts with upstream producers so schema changes fail in their CI, not in your pipeline. Confidence: 0.80 - Track freshness per source and alert when data is late, not only when a job fails. Confidence: 0.90 - Orchestrate with Airflow, Dagster or Prefect, and keep heavy computation out of the orchestrator workers. Confidence: 0.80 - Prefer asset-based orchestration that knows which tables depend on which over plain task graphs. Confidence: 0.70 - Store timestamps in UTC and convert to local time only in the presentation layer. Confidence: 0.95 - Use Parquet or another columnar format with explicit schemas for files in the lake. Confidence: 0.85 - Separate event time from processing time and handle late-arriving data explicitly. Confidence: 0.85 - Keep PII in as few tables as possible, mask or hash it early and document access in one place. Confidence: 0.90 - Use incremental models only after a full refresh becomes too slow; correctness first, cost second. Confidence: 0.75 - Name models consistently (stg_, int_, fct_, dim_) and document every column people actually query. Confidence: 0.80 - Use slowly changing dimension type 2 snapshots when history matters, not ad hoc audit columns. Confidence: 0.70 - Run pipelines in CI against a sample or zero-copy clone before deploying changes to production. Confidence: 0.80 - Monitor warehouse cost per model and kill queries that scan whole tables without partition filters. Confidence: 0.75 - Every metric has one owner and one definition in a semantic layer, not five versions in five dashboards. Confidence: 0.80
Opinionated conventions for building modern Android apps with Jetpack Compose and Kotlin.
# Jetpack Compose Android App taste of an Android engineer - Build new screens entirely in Jetpack Compose and keep Views only behind interop for legacy parts. Confidence: 0.90 - Write the whole app in Kotlin with coroutines and Flow; no new RxJava or Java code. Confidence: 0.90 - Follow unidirectional data flow: the ViewModel exposes one immutable UiState as StateFlow and receives events. Confidence: 0.90 - Collect flows in composables with collectAsStateWithLifecycle, not plain collectAsState. Confidence: 0.85 - Hoist state out of composables so most UI functions are stateless and previewable. Confidence: 0.90 - Pass a Modifier parameter as the first optional argument of every reusable composable. Confidence: 0.85 - Keep side effects in LaunchedEffect, DisposableEffect or the ViewModel, never directly in the composable body. Confidence: 0.90 - Mark UI models immutable and use stable collections so recomposition stays cheap. Confidence: 0.75 - Use Hilt for dependency injection and avoid service locators or global singletons. Confidence: 0.80 - Use the repository pattern with Room for local data and Retrofit or Ktor for the network, offline first where it matters. Confidence: 0.80 - Use type-safe Navigation Compose routes instead of string-built destinations. Confidence: 0.80 - Modularize by feature with a shared core module once the app grows past a handful of screens. Confidence: 0.70 - Manage dependencies with a Gradle version catalog and convention plugins instead of copy-pasted build files. Confidence: 0.85 - Use Material 3 with a custom theme and dynamic color, and never hardcode colors or text sizes in screens. Confidence: 0.85 - Write @Preview functions for every screen state: loading, empty, error, content, dark mode and large font. Confidence: 0.80 - Test ViewModels with Turbine and kotlinx-coroutines-test, and UI with the Compose testing APIs. Confidence: 0.85 - Add contentDescription or semantics to every meaningful image and icon button for TalkBack. Confidence: 0.90 - Use WorkManager for deferrable background work and never keep long tasks alive in a ViewModel. Confidence: 0.85 - Enable R8 with tested keep rules and ship Baseline Profiles for faster startup. Confidence: 0.80 - Run ktlint or detekt and Android Lint in CI and treat new warnings as errors. Confidence: 0.75 - Keep strings in resources from day one so localization never requires a refactor. Confidence: 0.85