Guide: Working with Idiosyncrasy in Agent-Ready Target Systems

A target system intended for coding agents should be evaluated not only by its runtime behavior, but also by its architectural legibility. In this context, architectural legibility means that a competent newcomer – human or agent – can form reasonable expectations about where functionality is located, how changes should be made, and how those changes can be validated.

A project becomes idiosyncratic when its structure, naming, dependencies, testing strategy, or development workflow cannot be inferred from common software engineering conventions and instead depends on undocumented local knowledge. Such idiosyncrasy is not always wrong, but it should be treated as an architectural cost: it increases the effort required for both human developers and coding agents to understand, modify, and validate the system.

A useful guiding principle is:

Idiosyncrasy is not necessarily a defect, but it is a cost.

1. Evaluate the project from the perspective of a competent newcomer

The simplest diagnostic question is:

Would a competent engineer, unfamiliar with this project, correctly guess where to make a typical change?

For a backend service, typical changes may include:

TaskWhat the newcomer should be able to infer
Add a new endpointWhere routes/controllers are defined
Add a field to an API responseWhere schemas or serializers live
Modify validation logicWhere input and domain validation are handled
Add a database queryWhere persistence logic belongs
Add a test for a bug fixWhich test directory and test style to use
Change configurationWhere runtime settings are defined
Run the service locallyWhich command starts the system
Run relevant testsWhich command validates the change

If these routine actions require insider explanation, the project likely contains hidden conventions or idiosyncratic structure.

2. Look for signs of idiosyncrasy

A project may be idiosyncratic when ordinary development actions depend on local knowledge rather than visible structure.

AreaDiagnostic sign
StructureFiles are organized by local history rather than recognizable responsibility
NamingNames are meaningful only to insiders
ToolingCommon tasks require undocumented commands
TestingIt is unclear which tests validate which behavior
DependenciesModules depend on each other in surprising directions
ConfigurationImportant behavior is controlled by hidden environment variables or implicit defaults
ArchitectureSimilar features are implemented in different ways
DocumentationThe docs explain obvious things but omit project-specific rules
Change workflowDevelopers must ask someone before making routine changes
Agent behaviorThe coding agent repeatedly edits the wrong files, misses required tests, or misunderstands boundaries

Coding agents can be useful as a kind of legibility probe. If an agent repeatedly makes plausible but wrong assumptions, that may reveal architectural surprise in the project.

3. Use routine change tasks as an evaluation method

To evaluate whether a project is agent-ready, select several common development tasks and examine how easily they can be located, implemented, and validated.

Example tasks:

Change taskEvaluation question
Add an endpointIs there an obvious place for new API behavior?
Change a domain ruleIs business logic separated from transport and persistence code?
Add a testIs the relevant test location and style predictable?
Modify persistence logicAre data access boundaries clear?
Update configurationAre settings visible and documented?

For each task, ask:

Where would a competent newcomer expect this change to be made?

Then compare that expectation with the actual project structure. A mismatch is not automatically a problem, but it should be explainable.

4. Check whether conventions are consistent

Idiosyncrasy often appears when similar problems are solved in different ways.

Ask:

QuestionWhat it reveals
Are similar features implemented similarly?Architectural regularity
Are API routes defined consistently?Structural predictability
Are database operations handled through the same layer?Dependency discipline
Are tests named and located predictably?Validation clarity
Are schemas, models, and domain objects clearly separated?Boundary legibility

A project can tolerate local conventions if they are consistent. Inconsistent conventions are more costly because they force the developer or agent to rediscover the rules for each part of the system.

5. Identify hidden knowledge

A strong indicator of idiosyncrasy is hidden knowledge.

Ask:

What would someone need to know that is not visible in the code, tests, documentation, or tooling?

Examples include:

Hidden knowledgeWhy it matters
“This command must be run before tests, but it is not documented.”Validation becomes unreliable
“Do not use this module directly, although nothing prevents it.”Architectural boundaries are implicit
“This feature looks unused but is required by a background job.”Agents may delete or modify it incorrectly
“Tests pass locally only with a specific environment variable.”Feedback loops become fragile
“New endpoints should copy this older pattern, not the newer one.”The system sends conflicting signals

Hidden knowledge should either be removed, encoded into the system, or documented near the place where it matters.

6. Classify deviations from convention

Not every deviation from common practice should be eliminated. Some are intentional and valuable. The goal is not to make every system generic, but to understand the cost of each deviation.

Type of deviationInterpretationRecommended action
Intentional and documentedUsually acceptableKeep and maintain documentation
Intentional but undocumentedRiskyDocument the reason and expected usage
Accidental but harmlessLow priorityLeave or clean up opportunistically
Accidental and confusingProblematicSimplify, rename, or restructure
Required by domain constraintsAcceptable if explainedMake the domain reason explicit
Required by legacy constraintsOften unavoidableIsolate and document the constraint

This classification prevents the advice from becoming too simplistic. The point is not “never be unusual.” The point is:

Be conventional where possible, and explicit where necessary.

7. Evaluate idiosyncrasy across key dimensions

A practical rubric can evaluate project idiosyncrasy along five dimensions.

DimensionLow idiosyncrasyHigh idiosyncrasy
Structural predictabilityFiles are where a newcomer expectsFile locations are surprising
Naming consistencyNames reflect common conceptsNames require insider knowledge
Workflow explicitnessSetup, test, lint, and run commands are documentedWorkflow depends on memory or tribal knowledge
Architectural regularitySimilar problems are solved similarlySimilar problems are solved differently
Validation clarityRelevant tests and checks are easy to identifyIt is unclear how to verify a change

Then you could say:

A target system is agent-ready to the extent that it scores well on structural predictability, naming consistency, workflow explicitness, architectural regularity, and validation clarity.