> ## Documentation Index
> Fetch the complete documentation index at: https://docs.whyfile.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Rename whyfile artifact to whyfile config json

# Decision: Rename the Whyfile artifact to whyfile.config.json

**Status:** Accepted
**Date:** 2026-07-14

## Context

The checked-in config artifact was named `Whyfile` (capitalized, no extension), modeled on the
`Makefile`/`Dockerfile` family. That family is extensionless by convention; once an extension is
added (needed for OS/editor/syntax-highlighting reasons — GitHub's Linguist has no override for the
bare name `Whyfile`, so it rendered with no syntax highlighting at all), the capitalization no
longer borrows a real convention. What should the artifact be renamed to?

## Decision

Renamed to `whyfile.config.json`, matching the widely-recognized `tool.config.ext` pattern
(`vite.config.ts`, `next.config.js`). Verified zero collision with the existing `.whyfile.json`
sidecar output (`graphify-out/`) and with the `whyfile why` CLI subcommand — a live PyPI check
also confirmed `why` is already a registered (if dormant) package name, real prior art against a
bare `why`-based name.

## Alternatives considered

1. `whyfile.json` - rejected: collides visually with the existing `.whyfile.json` sidecar output
   file, differing only by a leading dot and directory.
2. `why.config.json` - rejected: collides with the `whyfile why "question"` subcommand, and a live
   PyPI check found `why` is already a registered package name.
3. Reworking or renaming the `why` subcommand itself to make `why.config.json` safe - rejected as
   disproportionate: `why` is a core, tested, MCP-exposed subcommand; breaking it for a filename
   preference is the wrong trade.
4. A dotfile form (`.whyfilerc.json`) - rejected: hides the artifact from a plain `ls`, against the
   original design's explicit discoverability goal.

## Recommendation

whyfile.config.json
