1. Descriptive repository naming
Choose functional, meaningful repository names that reflect the project’s purpose and domain. Avoid vague or internal-only code names that provide no context to new readers. Table: naming examples
A clear name helps users infer the repository scope when browsing search results, dashboards, or internal catalogs.
2. Concise summary (one- or two-sentence description)
Add a short, one- or two-sentence description at the top of the repository so potential users can quickly decide whether the project fits their needs. This summary should appear in theREADME header and in the repository description field (if your platform supports it).
Example README header snippet:
3. Clear licensing
Always include aLICENSE file in the repository root. Even for internal projects, an explicit license clarifies how code may be used, modified, and redistributed inside your organization and supports legal and security reviews.
Including a
LICENSE file prevents confusion about reuse and speeds up legal and security reviews. If your organization uses a standard internal license template, include that exact file and note any third-party license requirements.THIRD_PARTY_NOTICES or NOTICE file that lists those components and attribution text.
Do not omit license information. Missing or ambiguous licensing is a common blocker for reuse and dependency approvals.
4. Standardized landing page (README.md)
Maintain a README.md in the repository root. Many platforms render this file as the repository’s front door, so use it to set expectations and streamline onboarding.
A discoverable README should include:
- A short one-line description (
# Project Name+ one sentence). - Quick-start instructions so developers can run or use the project locally.
- Usage examples and common workflows.
- Links to architecture docs, API reference, and design docs.
- Contribution guidance or a pointer to
CONTRIBUTING.md. - Maintainer or team contact information.
Additional practices that improve discoverability
- Add repository topics/tags (e.g.,
payments,frontend,go,microservice) to improve search and filtering. - Provide a clear directory structure and a top-level documentation folder (for example,
/docsor/architecture) for deeper design and architecture information. - Include
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdto lower barriers for new contributors and set expectations for collaboration. - Maintain
CHANGELOG.mdor release notes so readers can quickly see what changed and when. - Use issue templates and labels so reported problems are easier to triage, filter, and find.
- Expose a single source of truth for dependencies and build tooling (
package.json,go.mod,requirements.txt, or similar). - Consider adding a short “status” badge (build, coverage, latest release) near the top of the README to surface project health.
Links and references
- GitHub: About READMEs
- Open Source Guides: Starting a project
- Choose a license
- Internal guidance: link your company’s internal developer portal or policy pages for license templates, contribution rules, and repository tagging conventions.