Add module-level index and boundary docs for the 28 top-level `src/` directories
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 38/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- documentation
Research direction
Start by listing the 12 index.ts barrels under src/ and reading .eslintrc.js around line 39 for the import/no-relative-parent-imports rule, since that sets the cross-directory import convention. The issue requires a maintainer-level decision on barrels before any edits, so raise that choice in the thread first. Done means the barrel convention is written down, the five largest directories (src/common/, src/core/, src/infrastructure/, src/investment/, src/blockchain/) each have a short README, docs/ARCHITECTURE.md links to them, and npx tsc --noEmit passes.
Written by the indexing model from the issue text.
Description
Problem
src/ has 28 top-level directories and there are 12 index.ts barrel files scattered inside them, but no consistent barrel convention. The file count per directory varies from 0 (src/api/, src/models/ — pending removal) to 80 (src/common/).
There is no README in any src/ subdirectory. A contributor's first question — "which module owns this?" — is answered only by reading the directory name and guessing.
This overlaps with the docs/ARCHITECTURE.md issue; the difference is that this issue is about per-directory self-documentation at the point of use, not a single top-level document.
Suggested Direction
-
Settle the barrel question first. 12
index.tsfiles exist today. Barrels are useful for cross-module imports and harmful for cycles and tree-shaking. Either standardise on them or remove them — but pick one. Note thatimport/no-relative-parent-importsis alreadyerrorin.eslintrc.js:39, so cross-directory imports already have a convention. -
Add a short
README.mdto each major directory stating three things in a few lines:- what the module owns
- what it depends on and what depends on it
- where its tests live
Start with the largest and most confusing:
src/common/(80 files),src/core/(76),src/infrastructure/(57),src/investment/(46),src/blockchain/(23). -
Have
docs/ARCHITECTURE.mdindex them, so there is one entry point and the per-directory docs are the detail.
Constraints
- Keep each per-directory README short — under 30 lines. These are orientation aids, not design documents.
- Do not duplicate content that belongs in
docs/. Link instead. - If you remove barrels, verify
npx tsc --noEmitafter each removal; they are load-bearing for module resolution in several places.
Acceptance Criteria
- A barrel-file convention is documented, and the 12 existing
index.tsfiles comply or are removed. - The five largest directories each have a
README.mdwith owner, dependencies, and test location. -
docs/ARCHITECTURE.mdlinks to each directory README. -
npx tsc --noEmitpasses.
- Dominant language
- TypeScript
- Stars
- 7
- Forks
- 55
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 5
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from SourceXXL/alian_structure-api
-
good first issue help wanted security
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SourceXXL/alian_structure-api#266 ·
-
Parallelize the cache-warming loop in `cache-warming.service.ts` — warmers run strictly sequentiallyPossibly taken @syntaxsuuvam-spec claimed this 3 days ago. Opengood first issue performance
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SourceXXL/alian_structure-api#240 ·
-
documentation help wanted intermediate refactor
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
SourceXXL/alian_structure-api#215 ·
-
good first issue refactor tooling
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
SourceXXL/alian_structure-api#199 ·
-
help wanted intermediate refactor
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
SourceXXL/alian_structure-api#196 ·
All issues in SourceXXL/alian_structure-api
Similar issues
-
useFragment does not require `variables` when the fragment's variables type has required fieldsOpen
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
apollographql/apollo-client#13493 ·
Maintainers usually reply within 1 day
-
Custom hosts written as trailing-dot FQDNs (`host.local.`) aren't detected as local backendsPossibly taken @roboomp claimed this today. Openbug prio:p2 providers triaged
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
can1357/oh-my-pi#15798 · 3 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
code-yeongyu/oh-my-openagent#10172 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
PDFCraftTool/pdfcraft#189 ·
-
Add the Yahoo chart API duplicate last-day row (yfinance#573) to incidents.md (about 1 hour)Possibly taken A pull request linked to this issue is open or already merged. Opendata docs good first issue
Difficulty 1/5 Under an hour Newbie friendliness 80/100
pacocartones/market-data-sanity-checker#160 ·
Maintainers usually reply within 1 day