A quiet project has no recent changes, no clear owner, no stated next step, and sometimes a leftover automation or dependency that no one remembers maintaining. Ordinary tools make forgotten things easy to omit, and that is how a project gets risky without ever failing in a dramatic way.
We built a small inventory for that. It doesn’t try to decide whether a project is valuable. It asks one question first: has someone explicitly decided what this project is and what should happen next?
One design choice made it useful. Anything the scanner finds that isn’t in the registry goes at the top of the report under Needs classification. A configuration file that doesn’t know about a project can’t make it vanish from the report.
A quiet directory records no decision
It is tempting to read a quiet repository as harmless, and sometimes it is. A project may be intentionally parked, finished, archived, or no longer relevant. Each of those is a decision, and a directory on disk doesn’t record one.
The inventory distinguishes four states:
- Active: it has an accountable owner and a current purpose.
- Parked: work has paused, with a reason and a condition for resuming.
- Frozen: it is retained as a historical record and should not change.
- Unclassified: the system found it, but nobody has yet said what it is for.
The fourth state carries the most weight. If the inventory filters out unknown items, it recreates the original problem. The work is still there, with no owner, no context and no lifecycle decision.
Join observed state with declared intent
The scanner combines two kinds of information.
Observed state is what the scan can see: whether a repository has recent activity, pending changes, or references in approved automation. It tells you something exists or appears to be in use. It can’t tell you whether that use is intended.
Declared intent is a small, human-maintained registry holding an owner, a status, and enough context for someone to make the next decision. Parked work gets a reason and a pickup condition. Frozen work gets an explanation of why it is retained.
The join between them is a reconciliation rather than an inner join. An inner join would only report entries the registry already knows. The reconciliation shows every discovered item and flags anything missing from the registry, so the inventory can say “we found this, but we do not know what it is.”
Put the report where people already look
A report nobody sees is just a better-organized omission. It needs a predictable review point, such as a weekly operating review, a pre-planning checklist, or a brief project-start ritual. That keeps ownership and lifecycle visible before dormant work becomes accidental infrastructure, and it doesn’t need heavy process.
The report also states when the scan ran, and it shows an empty Needs classification section when there is nothing to resolve. An empty section is evidence the check ran. If the section were simply absent, you couldn’t tell a clean scan from one that never happened.
A safe way to start
You don’t need a sophisticated platform. Start with a modest registry and a read-only inventory.
- Define the statuses your team can actually act on.
- Inventory only sources you are authorized to inspect.
- Surface unmatched items without changing or deleting anything automatically.
- Give each finding an owner and a decision deadline appropriate to its risk.
- Treat automation references, credentials, customer data, and production dependencies as higher-risk findings that require the right access, review, and change controls.
- Keep an audit trail of classification decisions and revisit parked work periodically.
None of this says every old project should be revived or deleted. It makes the unknown visible enough for a person to decide, and that is the tripwire: unregistered is not a default state. It is work waiting for classification.
Keep a small registry with an owner, a status and a next step for each project, list every item missing from it at the top of the report, and put that report in a regular review. Unclassified work then turns into a decision someone has to make.