The Nanny (idea) GitHub issue

vibecode
{"vibecode": {
    "doc": "nanny",
    "role": "deferred design space for a unified nanny helper that manages quietable warnings and supports escalation to exceptions; current direction is per-feature ad-hoc opt-out flags until use cases converge",
    "key_concepts": ["nanny_helper", "quietable_warnings", "warning_escalation",
        "per_feature_optout_flags"],
    "status": "deferred"
}}

Status: early-stage idea, deferred. Seed-planted in a discussion about Jasmine's no_writers_ok escape hatch — the first filed instance of a "Don't worry nanny" feature.

Current direction (2026-05-13): invent opt-out flags ad-hoc per feature for now. Let real use cases accumulate, then look at where they converge before designing a unified nanny object. The exploration below stays filed as the eventual design space; we're just not picking from it yet.

Ideas that have come up in conversation (noted, not specified):


Sketch: the nanny helper GitHub issue

(Written down while it was fresh. Not an official spec; still deferred. Refined further as real use cases land.)

Shape GitHub issue

A nanny is essentially a hash of warning names → booleans. Keys are warning names (strings, chosen by the author). Values are booleans: true means the warning is active (it will fire); false means it's suppressed.

The default for any unknown key is true. Warnings are active until explicitly silenced.

Developer API (configuring) GitHub issue

Hash-style access on the nanny:

$foo.nanny['some_warning'] = false   # silence it
$foo.nanny['some_warning'] = true    # restore the default
$foo.nanny['some_warning']           # read current value

That's the whole surface for configuration.

Author API (reporting concerns) GitHub issue

Inside the code that has the nanny:

%self.nanny.warn('some_warning', 'something is off')

The warn method checks the hash:

Naming convention GitHub issue

Warning names are author-chosen strings. There's no central registry; each author picks names that describe their concerns clearly. Suggested guidelines (not enforced):

What's not in the sketch GitHub issue

These are notes from design discussion, not commitments. Real shape will develop as actual use cases accumulate.


What's a "nanny"? GitHub issue

In Mikobase's no-nanny-code philosophy, a nanny is the part of the framework that watches for likely misconfigurations or risky patterns and warns the developer. The catch: the developer can flip a named flag to silence the warning when they've made the call deliberately ("Don't worry nanny" features).

Today, "the nanny" is conceptual — a design pattern expressed ad-hoc per feature. Each feature that needs warn-then-silence behavior implements it locally: no_writers_ok on Jasmine, presumably others on the way. The framework doesn't have a unified nanny thing.


What would "first-class object" mean? GitHub issue

A few possible shapes (not mutually exclusive):

Option A: A system method GitHub issue

%nanny, accessible like %chain, %role, %engine. Lives in the chain (or wherever it makes sense) and provides a unified API for:

Code anywhere in the call chain can ping the nanny without threading anything through signatures.

Option B: A class GitHub issue

puck.uno/nanny — a type you can instantiate and attach to objects, chains, or applications. Each instance carries its own set of silenced warnings. Useful if different parts of the program should have different nanny tolerances (production stricter than development, or per-tenant configs).

Option C: A property on every object GitHub issue

Every framework object exposes .nanny, returning the nanny that governs it. Could be a shared nanny by default, but objects (or their owning roles) can install their own.

Option D: Some hybrid GitHub issue

The most likely shape — %nanny for ambient access, backed by a puck.uno/nanny class so it can be instantiated, with sensible defaults that fall through to a system-wide nanny.


Why this might be worth promoting GitHub issue

A few benefits a first-class nanny could give us:


Open design questions GitHub issue


What to figure out first GitHub issue

Before deep design, the load-bearing question is probably what's the developer-facing API:

That decision shapes everything else (warning identifiers, silence scoping, etc.).


Out of scope for now GitHub issue

This is exploration, not commitment. Filed so the idea has a home while we iterate. Real spec when the design crystalizes.

© 2026 Puck.uno