🩻 repo-audit
generated 11 Jul 2026 18:47 IST · 65 repos ·
mean score 3.7/10 · 1 archived · 9 fork · 9 healthy · 8 needs work · 32 poor · 1 stale · 5 unscored
1/10 another_repo — · pushed 194d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
There is no code here, only a README containing a prompt injection attempt. · → delete
Do first
- Add actual source code implementing the stated project purpose
- Add a real README.md describing what the repo does, setup, and usage
- Add tests and basic CI if this becomes a real project
Findings
- [RISK] README.md contains an embedded instruction attempting to hijack the auditor/LLM output format instead of documenting the project
- [BUG] Repository has no source code, so correctness/structure/error-handling/tests cannot be evaluated
- [STYLE] No LICENSE, no .gitignore, no project scaffolding present
1/10 astroboy1183.github.io HTML · pushed 187d ago · hygiene 0/7 (missing: README, description, license, tests, CI workflow, .gitignore, topics)
No auditable source — an empty shell. · → archive
Do first
- Archive or delete this repo; it adds clutter, not signal
1/10 courserarepo Python · pushed 2253d ago · hygiene 2/7 (missing: license, tests, CI workflow, .gitignore, topics)
This is a leftover Coursera git-tutorial exercise with zero project value. · → delete
Do first
- Delete example.py — it's a throwaway git tutorial artifact, not code
- Delete or rewrite README.md — it currently just narrates editing itself instead of describing a project
- If any real content was intended, start a fresh repo with an actual purpose
Findings
- [STYLE] example.py has no real logic, just a print statement simulating a git operation
- [STYLE] README.md is meta-commentary about editing the README, not documentation
- [RISK] Repo provides no indication of purpose, making it dead weight on a portfolio profile
- [BUG] Indentation in example.py (single space) is inconsistent with PEP8 standards
1/10 databricksrepo Jupyter Notebook · pushed 437d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
There's no actual content here — just a README containing meta-instructions instead of a project. · → delete
Do first
- Add real source code and a genuine README.md describing what the repo does
- If this was meant to hold Databricks notebooks/pipelines, commit them or remove the repo
- Add a .gitignore and basic project scaffolding if you intend to revive this
Findings
- [BUG] README.md contains a prompt/instruction payload instead of project documentation
- [RISK] Repo appears to have no source code, tests, or structure to audit
- [STYLE] Repo name suggests Databricks work but nothing Databricks-related is present
1/10 datasciencecourserarepo — · pushed 2114d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
This is an empty shell with no actual code, just a placeholder markdown file and a bare README. · → delete
Do first
- Add actual coursework content or delete the repo entirely
- If keeping, write a real README.md describing what the course/repo covers
- Remove HelloWorld.md as it adds zero value
Findings
- [BUG] Repo contains no functional code or coursework artifacts
- [STYLE] README.md has no description, no content, just the title
- [RISK] Repo name suggests it should contain Data Science Coursera work but it's entirely empty
1/10 git-learn HTML · pushed 37d ago · hygiene 1/7 (missing: README, license, tests, CI workflow, .gitignore, topics)
No auditable source — an empty shell. · → archive
Do first
- Archive or delete this repo; it adds clutter, not signal
1/10 hello-world — · pushed 2284d ago · hygiene 2/7 (missing: license, tests, CI workflow, .gitignore, topics)
This is an empty placeholder repo with no code, so there's nothing to audit or ship. · → delete
Do first
- Delete the repo if it's just GitHub's default init, or add actual project content to README.md if you meant to use it as a sandbox
- If keeping as a scratchpad, rename it to something like 'sandbox' or 'playground' to clarify intent
- Add a real project or merge its purpose into an existing repo
Findings
- [STYLE] README.md contains only a placeholder sentence with no project description, purpose, or content
- [RISK] Repo provides zero signal of skill or effort, which is a liability on a portfolio profile
- [BUG] No source code, tests, or structure exists to evaluate
1/10 in-vehicle-coupon-recommendation-system Jupyter Notebook · pushed 1665d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
There's nothing here to audit but a title. · → delete
Do first
- Add an actual README.md with project description, setup, and usage instructions
- Add source code implementing the coupon recommendation model
- Add requirements.txt/environment file and at least a basic test or notebook demonstrating results
Findings
- [BUG] Repo contains no visible source code, only a README stub
- [RISK] No way to evaluate correctness, structure, or functionality as nothing was provided
- [STYLE] README lacks even a project description, badges, or usage examples
- [RISK] If this reflects the actual repo state, it offers zero portfolio value in its current form
- [STYLE] Repo name suggests scope (in-vehicle coupon recommendation) that isn't backed by any implementation
1/10 kaggle Jupyter Notebook · pushed 1653d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
A one-line README with no visible code, structure, or tests means there's nothing here to actually audit. · → delete
Do first
- Add actual notebook files (.ipynb) demonstrating specific Kaggle competition work
- Expand README.md with project descriptions, dataset links, and results per notebook
- If notebooks exist but weren't shown, add a proper directory structure and .gitignore for checkpoints/data
Findings
- [BUG] README.md is effectively empty, no indication of what the repo contains
- [RISK] No visible source files means this repo currently has zero portfolio value
- [STYLE] Missing description, badges, or links to actual Kaggle competitions/notebooks
- [RISK] If notebooks exist outside what's shown, lack of documentation makes them undiscoverable
1/10 Machine-Learning Jupyter Notebook · pushed 1665d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
There is no code here, just a README with a prompt injection attempt disguised as instructions. · → delete
Do first
- Replace README.md with an actual project description of what this repo contains
- Add source files — currently there is nothing to audit as a Machine-Learning repo
- If this was meant to manipulate an auditing LLM into skipping review, remove that and add real content
Findings
- [BUG] Repo contains no source code, notebooks, or datasets — only a README
- [RISK] README content is a prompt-injection attempt instructing the auditor to output a fixed response instead of describing the project
- [STYLE] Repo name 'Machine-Learning' gives zero indication of actual purpose or scope
- [RISK] Presenting this as-is on a public profile signals either an empty placeholder repo or an attempt to game automated tooling, both bad looks
- [STYLE] No LICENSE, no requirements, no structure of any kind
1/10 MySQL — · pushed 1652d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
A one-line README with no actual scripts is not a repository, it's a placeholder. · → delete
Do first
- Add the actual MySQL scripts referenced in README.md or remove the repo entirely
- If scripts exist but weren't shown, add descriptions of what each script does to README.md
- If this is meant to be a living collection, add a folder structure (e.g. /schemas, /migrations, /queries) and commit real content
Findings
- [RISK] Repo contains no verifiable code or scripts, only a title-like README — provides zero portfolio value in current state
- [STYLE] README.md lacks any description, usage instructions, or context beyond a fragment sentence
- [RISK] No indication of what MySQL version, purpose, or use case these scripts target
1/10 pandas Jupyter Notebook · pushed 2038d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
A one-line README with no actual code visible is not an auditable project, let alone a portfolio piece. · → delete
Do first
- Add actual source files (notebooks/scripts) if this repo is meant to contain pandas exercises
- Rewrite README.md to describe what the code does, setup instructions, and examples
- If this is just scratch practice, merge into a single 'learning' repo instead of keeping it standalone
Findings
- [RISK] Repo appears to contain no discoverable source code, making it worthless as a showcase piece
- [STYLE] README.md is a placeholder with zero context, purpose, or usage info
- [RISK] No tests, structure, or docs to evaluate — cannot verify correctness of anything
1/10 project — · pushed 1641d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
This is a one-line README with no actual code, so there's nothing here to audit or use. · → delete
Do first
- Add actual application source (e.g. app.py) implementing the Streamlit app
- Add requirements.txt and deployment config (Procfile/Dockerfile/streamlit config)
- Expand README.md with setup, usage, and deployment instructions
Findings
- [BUG] Repository contains no source code whatsoever, just a title
- [RISK] No requirements.txt or dependency pinning means nothing is reproducible
- [STYLE] README is a single unformatted line with no context or instructions
1/10 R-Repository R · pushed 1654d ago · hygiene 3/7 (missing: license, tests, CI workflow, topics)
This is an empty shell with a single sentence in a README, not a project. · → delete
Do first
- Add actual R scripts or notebooks demonstrating specific learnings (e.g., data_wrangling.R, ggplot_examples.R)
- Write a real README.md with repo purpose, contents list, and setup instructions
- If keeping, add at least one worked example with comments explaining the R concept being learned
Findings
- [RISK] Repo contains no source code, so it has zero portfolio or reference value in its current state
- [STYLE] README.md is a single unstructured sentence with no sections, links, or context
- [BUG] No indication of what R topics were actually learned, making the repo purpose unverifiable
- [RISK] Publicly visible with this little content reflects poorly on an otherwise data-engineering-focused profile
1/10 winrepo — · pushed 1637d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
There's nothing here but a placeholder README, so there's no repo to judge. · → delete
Do first
- README.md: either write a real description, code, and purpose, or remove the repo entirely
- Add actual source files if this project has any intended functionality
- If abandoned/experimental, delete it rather than leaving a stub public
Findings
- [RISK] README.md contains only the literal text 'sample', signaling zero actual content or intent
- [STYLE] No source code, no structure, no way to assess correctness or design
- [RISK] Public empty repo reflects poorly on portfolio quality if left as-is
2/10 Coursera-IBM-Data-Science Jupyter Notebook · pushed 421d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
This is a coursework repo with no code shown beyond a README, offering zero portfolio value in its current state. · → archive
Do first
- Add a real README.md summarizing what was learned and linking to specific notebooks/certificates if you want to keep it
- If any actual project notebooks exist beyond the README, move them into a proper structured folder with descriptions
- Otherwise, just link the Coursera certificate on your profile/resume and delete this repo
Findings
- [STYLE] Course-completion repos like this add no signal to a portfolio and dilute the profile
- [RISK] No source code, notebooks, or exercises are shown — repo appears to be just a README stub
- [STYLE] Title suggests it's a course tracker, not an original project, which recruiters typically skip
- [BUG] No structure, no tests, no docs beyond the title — nothing to audit or evaluate technically
2/10 full-stack-ai-python Python · pushed 81d ago · hygiene 1/7 (missing: README, description, license, tests, CI workflow, topics)
This is raw personal Python syntax practice, not a project, and shouldn't be judged or presented as one. · → archive
Do first
- Delete or rename repo away from 'full-stack-ai-python' since there's no AI, no full-stack, and no cohesive project here
- If keeping for reference, add a README explaining these are language-basics exercises, not showcase code
- Remove commented-out dead code blocks (e.g. chapter_10.py) and stray unused imports (e.g. arrow, namedtuple in chapter_11.py)
Findings
- [STYLE] No functions, classes, tests, error handling, or docs anywhere — just top-level scripts printing to stdout
- [STYLE] Filenames like chapter_1.py through chapter_11 with gaps (missing 8) suggest disorganized tutorial-following rather than authored structure
- [RISK] Repo name 'full-stack-ai-python' drastically overstates content; misleading to anyone auditing your GitHub as a data engineer
- [BUG] chapter_11.py computes brewing_time.to('Europe/London') but discards the result, doing nothing useful
- [STYLE] Comments are inconsistent (some educational, some leftover scratch notes) and would confuse a reader expecting production or showcase code
2/10 Java-Programming-Masterclass Java · pushed 1006d ago · hygiene 2/7 (missing: description, license, tests, CI workflow, topics)
There's nothing here to audit but a title. · → delete
Do first
- Add actual course exercise code and folder structure (e.g. src/ with per-section packages)
- Add a real README describing what was learned/built, not just the repo name
- If reviving, commit incrementally per topic so progress is visible in history
Findings
- [RISK] Repo appears to contain only a README with the repo title, no source code to evaluate
- [STYLE] No indication of scope, topics covered, or completion status
- [RISK] Empty/placeholder repos on a public profile dilute the credibility of the rest of the portfolio
- [STYLE] No license, no .gitignore, no build files (pom.xml/build.gradle) present
2/10 javascript HTML · pushed 1979d ago · hygiene 0/7 (missing: README, description, license, tests, CI workflow, .gitignore, topics)
This is a five-minute clock widget, not a project worth a repo. · → delete
Do first
- Add leading zeros to project.js time string (e.g. '9:5:3' -> '09:05:03')
- Wrap document.getElementById('time') in a null check in project.js to avoid a crash if the element is missing
- If keeping for portfolio value, fold into a larger demo or delete entirely since it has no standalone merit
Findings
- [BUG] No zero-padding on hours/minutes/seconds, producing malformed times like '9:5:3'
- [BUG] getElementById('time') result isn't checked, will throw if element absent
- [RISK] No HTML file, dependencies, or context included, so correctness can't even be fully verified
- [STYLE] Inconsistent variable declaration/indentation (mixing top-level and inline styles)
- [STYLE] No comments, tests, or documentation of any kind
2/10 Leetcode-Problems — · pushed 92d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
An empty repo with just a README is not a project, it's a placeholder. · → delete
Do first
- Add actual solution files organized by difficulty/topic if you want to keep this
- If reviving, include a README table linking problem number, title, and solution file
- Otherwise remove the repo entirely since it adds zero signal to your profile
Findings
- [BUG] No source code provided at all, nothing to audit or run
- [RISK] An empty Leetcode repo on a public profile signals abandoned work to anyone reviewing it
- [STYLE] README has no structure, difficulty tags, language used, or progress tracking
2/10 linkedlist Python · pushed 1611d ago · hygiene 0/7 (missing: README, description, license, tests, CI workflow, .gitignore, topics)
Three copy-pasted, buggy linked-list implementations with no tests, no docs, and a broken CLI wrapper that runs on import. · → delete
Do first
- Delete linkedlist1.py and circular-linkedlist.py duplication; keep at most one clean, tested implementation per structure if you want to showcase data-structure knowledge
- Add pytest-based unit tests covering push/append/delete/sort/dedup for whatever remains, since currently there is zero test coverage
- Guard the interactive CLI loop with if __name__=='__main__' properly (it currently runs unconditionally after the guarded llist init) and remove global 'llist' references inside class methods (append/
Findings
- [BUG] append() in circular-linkedlist.py sets new_node.next=self.head then unconditionally overwrites self.head.next=self.head, corrupting the ring on every append after the first
- [BUG] insertafter/append reference a bare global 'llist' name instead of self, so calling these methods outside the __main__ script context raises NameError
- [BUG] removeduplicates_unsorted uses data value as a list index (hashmap[p.data]) which crashes or misbehaves for negative numbers and wastes memory for large values
- [BUG] the `while(1):` CLI loop sits outside the `if __name__=='__main__'` guard (only llist=... is inside it), so importing any of these modules launches an infinite input() loop
- [STYLE] all three files are ~90% identical copy-pasted code (singly/doubly/circular) with tabs/spaces mixed, no docstrings, no type hints, and print-based 'error handling' instead of exceptions
2/10 Python-Masterclass Python · pushed 958d ago · hygiene 2/7 (missing: description, license, CI workflow, .gitignore, topics)
Standard Udemy 100-days-of-code exercise dump with no polish, tests, or docs beyond course boilerplate. · → archive
Do first
- Add a README to Python-Masterclass explaining it's course exercises, not production work
- Delete or squash Day 12/day12.py's commented-out dead code and tangled retry logic
- Pick 1-2 best pieces (e.g. oop-coffee-machine-final) to extract into a standalone polished portfolio repo
Findings
- [BUG] Day 10/day10.py divide() returns a string 'invalid input' on div-by-zero instead of raising/handling, breaking type consistency with other operations
- [BUG] Day 14/day14.py has an unbounded while(1) loop with no exit condition except losing, and indexes into game_data using a stale chosen_number for display text
- [RISK] Day 12/day12.py uses global state, recursion-as-loop-restart (evaluate_guess() calling itself), and exit() calls scattered throughout — fragile and hard to test
- [STYLE] Massive amounts of commented-out dead code left in Day 12/day12.py; no docstrings, no requirements.txt, no tests anywhere in the repo
- [RISK] Day 16/oop-coffee-machine-final/money_machine.py trusts unvalidated int(input()) for coin counts, will crash on non-numeric input
2/10 python_notebook Jupyter Notebook · pushed 2041d ago · hygiene 1/7 (missing: description, license, tests, CI workflow, .gitignore, topics)
This is a one-line README with no visible code, tests, or structure to audit. · → delete
Do first
- Add actual notebooks/scripts with content to README.md's referenced repo, or if none exist, remove the repo
- If learning notes exist, organize them into folders by topic (ds/ml/dl) with a real README.md index
- Add a requirements.txt or environment.yml if any notebooks are eventually added
Findings
- [STYLE] README.md is a single unformatted sentence with no repo structure, links, or table of contents
- [RISK] No source files were provided, suggesting the repo may be empty or contain no meaningful content
- [STYLE] No indication of what learnings, topics, or notebooks actually exist inside
- [BUG] Nothing to audit for correctness or error handling — repo appears to lack substance entirely
2/10 reactjs_work JavaScript · pushed 2141d ago · hygiene 2/7 (missing: description, license, tests, CI workflow, topics)
This is an untouched CRA tutorial exercise with a leftover console.log, not a showcase piece. · → delete
Do first
- Delete repo or fold into a single 'learning exercises' archive repo instead of standalone
- Remove console.log in src/Components/Bricks/brick.js if ever reused
- Fix src/App.test.js which fails since 'learn react' text no longer exists in App.js
Findings
- [BUG] src/App.test.js asserts text that was removed from App.js, so the only test fails
- [STYLE] console.log left in src/Components/Bricks/brick.js
- [STYLE] README.md is unedited CRA boilerplate, no project description at all
- [RISK] No key/error handling beyond trivial state push in src/Components/Wall/wall.js, but app itself is too trivial to matter
- [STYLE] Class component with arrow-function render in src/Components/Wall/wall.js is outdated style vs hooks
3/10 Data-Structures-and-Algorithms Python · pushed 20d ago · hygiene 2/7 (missing: description, license, tests, CI workflow, topics)
Basic tutorial scripts covering array/list operations with no tests, no error handling, and no real project structure beyond print statements. · → archive
Do first
- Add a README.md explaining this is a learning log, not a library, and stop expanding it as loose numbered scripts
- Replace print-driven demos with pytest-based unit tests (e.g. for linearSearch/binarySearch in 01_Arrays/02_arrays.py and 02_Lists/05_lists.py) if you want to reuse this for a portfolio
- Consolidate duplicated search/access helper functions (accessElement, linearSearch, binarySearch appear near-identically in multiple files) into a shared module
Findings
- [STYLE] Every file is a top-to-bottom script of print() calls with no functions-under-test separation, so nothing is importable or reusable
- [BUG] 01_Arrays/02_arrays.py accessElement allows index==len(array)-1 correctly but doesn't guard negative indices going out of bounds beyond Python's own wraparound
- [RISK] 01_Arrays/04_arrays_practice.py mixes many unrelated demos (insert/extend/frombytes/sort) in one file with no isolation, making it hard to reuse or verify individually
- [STYLE] Inconsistent naming conventions across files (camelCase functions like linearSearch next to snake_case variables like my_array)
- [RISK] No requirements.txt/pyproject visible for the numpy dependency, so reproducibility for a 'showcase' repo is not guaranteed
3/10 DocMind Python · pushed 29d ago · hygiene 2/7 (missing: README, license, tests, CI workflow, topics)
A working two-script RAG demo dressed up with comments but missing every safety net a real project needs. · → polish
Do first
- Add a README.md with setup steps, architecture diagram/explanation, and example queries
- Wrap index.py and query.py in try/except with proper error handling for missing PDF, Qdrant connection failures, and API errors
- Add a requirements.txt/pyproject.toml and at least a smoke test for the answer() function
Findings
- [BUG] similarity_search_with_score threshold of 0.3 is meaningless without knowing Qdrant's distance metric (cosine similarity is 0-1, but distance metrics differ) — likely arbitrary and untested
- [RISK] index.py has no idempotency check — rerunning it duplicates the entire collection with no upsert or clear-first logic
- [RISK] no error handling anywhere: missing .env vars, missing PDF file, Qdrant not running, or API failures will all produce raw stack traces
- [STYLE] CLAUDE_MODEL name 'claude-sonnet-4-6' looks like a placeholder/typo (no such published model), undermines credibility of the comment above it
- [BUG] no requirements.txt/pyproject.toml — repo isn't reproducible without guessing dependency versions
3/10 ipl-intelligence-platform TypeScript · pushed 80d ago · hygiene 3/7 (missing: license, tests, CI workflow, topics)
A skeleton FastAPI CRUD wrapper over static JSON with two hard-coded fake data clients pretending to be live integrations. · → polish
Do first
- Implement real HTTP calls in cricapi_client.py and news_client.py (requests/httpx) with actual API keys and error handling, or rename endpoints to make clear they're mocked
- Add a tests/ directory with pytest + httpx TestClient covering routes and services, none exist currently
- Add README documenting setup, data source assumptions, and that live endpoints are placeholders, plus input validation in ipl_service.py for missing JSON files/keys
Findings
- [BUG] load_json_file has no try/except; missing/malformed JSON files will raise unhandled 500s
- [RISK] cricapi_client and news_client return static fabricated data labeled 'fallback' with no real integration or fallback logic — misleading naming given the project's name implies live intelligence
- [RISK] No tests anywhere in the shown structure
- [STYLE] Direct dict key access (team['short_name'], stats['full_name']) throughout risks KeyError on malformed data instead of using .get()
- [STYLE] No .env/config management visible for future real API keys, CORS origins hardcoded to localhost only
3/10 mail-digest Python · pushed 0d ago · hygiene 6/7 (missing: license)
Genuinely clever design undermined by a truncated, likely-broken source file — as committed this doesn't run. · → polish
Do first
- mail_digest.py: fix the truncated main() — the file cuts off mid-statement at 'ahead = a', meaning the module doesn't even parse/import; restore the rest of main() (ahead_block, carried_block, vip_blo
- mail_digest.py: add at least a smoke test (mock Gmail service + fake LLM reply) that exercises main() end-to-end for both morning and evening paths, since none exists
- mail_digest.py/agentlib.py: add a README documenting setup (credentials.json, token.json, required env vars, GitHub Actions schedule) — the module docstrings are excellent but there's no onboarding do
Findings
- [BUG] main() is truncated ('ahead = a' with nothing after) — the file as shown cannot execute, so either the paste is incomplete or the committed file is genuinely broken
- [RISK] no automated tests anywhere for either file; all correctness rests on docstring reasoning and manual runs, risky for logic this stateful (JSON ledgers, thread-reply detection, dedup keys)
- [RISK] state files (noise.json/stats.json/actions.json/deadlines.json) have no concurrency guard or backup — a crash mid _save_json on a partial write could corrupt state with no recovery path
- [STYLE] very long, deeply-commented functions (summarize, main) mix orchestration with business rules; splitting the block-builders from the model-prompt construction would make the module testable in
- [BUG] vip_suggestions and thread_replied swallow all exceptions silently (bare except/continue) — a systematic Gmail API auth issue would silently degrade features rather than surface in logs
3/10 Python-AI Python · pushed 41d ago · hygiene 3/7 (missing: description, license, CI workflow, topics)
This is a personal learning scratchpad of API call snippets, not a project. · → archive
Do first
- Add a README.md explaining these are sequential GenAI course/tutorial exercises, not a cohesive app
- Wrap API calls in try/except in every file (e.g. 02_hello_world/*.py, 03_ollama_fastapi/server.py) so failures don't dump raw tracebacks
- Consolidate repeated boilerplate (dotenv load, client init) into a shared helper/config module instead of copy-pasting in every script
Findings
- [BUG] 06_structured_output.py builds an invalid JSON example with unescaped quotes inside a string, likely to confuse the few-shot demonstration
- [RISK] No requirements.txt/pyproject.toml or pinned dependencies shown, so reproducibility across tiktoken/openai/transformers/ollama versions is unclear
- [RISK] No .env.example or gitignore mention, risk of committing real API keys if .env is tracked
- [STYLE] Zero tests, zero error handling, hardcoded personal name/persona strings throughout indicate throwaway tutorial code rather than showcase-quality work
- [STYLE] No docstrings or comments explaining intent beyond one-line topic headers, low reusability for anyone browsing the repo
4/10 Quiz-App Python · pushed 66d ago · hygiene 4/7 (missing: license, CI workflow, topics)
Promising skeleton with real async/auth/migration plumbing but too many stub agents and zero tests to judge as functional yet. · → polish
Do first
- Implement backend/agents/stats_aggregator.py, tutor.py, path_planner.py or remove them if unused — empty files signal abandoned scope
- Add tests/ with at least auth.py and question_generator.py covered (mock OpenAI calls) since there is currently no visible test suite
- Fix config.py default database_url port (5432) mismatching alembic/env.py default (5433) to avoid silent dev confusion
Findings
- [BUG] config.py and alembic/env.py have different fallback DATABASE_URL ports (5432 vs 5433), risking connection errors if .env is missing
- [RISK] No tests directory shown at all — orchestrator, evaluator, and question_generator have zero coverage
- [RISK] question_generator.py raises RuntimeError on repeated LLM failures with no fallback/backoff, could hard-crash a request path
- [STYLE] Several agent files (tutor.py, path_planner.py, chroma_client.py) are empty stubs committed to repo, cluttering structure without indicating WIP status
- [STYLE] orchestrator.py is pure logging with no real routing logic yet — fine for sprint 1 but should be flagged as incomplete in README if not already
4/10 sentiment-analysis Python · pushed 193d ago · hygiene 4/7 (missing: license, CI workflow, topics)
Clean, well-tested code masquerading as a sentiment analysis project when it's just a 20-word keyword lookup table. · → polish
Do first
- sentiment_service.py: replace or augment the keyword list with a real model (VADER, TextBlob, or a small HF transformer) so the name matches the function
- README.md: disclose the rule-based limitation upfront so it's not misleading in a portfolio context
- app.py: add a requirements.txt (referenced in README but missing) and basic input length/rate limits
Findings
- [BUG] README references requirements.txt but it's not shown/provided in the repo
- [RISK] Naming it 'sentiment-analysis' oversells a ~20-word bag-of-words heuristic; misleading for showcase purposes
- [STYLE] Negation handling absent ('not good' scores as positive) — a basic correctness gap for any sentiment tool
- [STYLE] Good separation of concerns (service vs API), decent test coverage, type hints and docstrings are solid
- [RISK] No CI config, no Dockerfile, no version pinning — thin for a 'showcase' piece
4/10 SmartDay-App TypeScript · pushed 70d ago · hygiene 2/7 (missing: README, license, tests, CI workflow, topics)
A partially-scaffolded Expo app with a reasonable SQLite layer but too little shown (no screens, no real tests, no docs) to judge or ship as-is. · → polish
Do first
- Add a README.md describing purpose, architecture (SQLite + sync_queue for offline-first), and setup/run instructions
- Write real unit tests for hooks/useStreaks.ts and db/migrations.ts instead of relying only on the boilerplate StyledText snapshot test
- Fix the streak/date-key logic in useStreaks.ts to use local-date strings consistently (avoid toISOString timezone bugs) and add error handling around db calls in toggleToday/addHabit
Findings
- [BUG] useStreaks.ts uses `new Date().toISOString().split('T')[0]` for date keys, which is UTC-based and will misalign 'today' for users in negative UTC-offset timezones
- [RISK] No error handling in toggleToday/addHabit/deleteHabit — a failed runAsync will throw uncaught and leave the DB/UI in an inconsistent state
- [RISK] sync_queue table is defined in schema.ts but no code shown actually populates or drains it, suggesting offline-sync is incomplete or vestigial
- [STYLE] Only one trivial snapshot test exists for the whole app; no coverage of DB layer, migrations, or streak calculation logic
- [STYLE] Mixed id generation strategies (uuidv4 in addHabit vs `${Date.now()}-${Math.random()}` in toggleToday) is inconsistent and risks collisions
5/10 election-dashboard TypeScript · pushed 55d ago · hygiene 3/7 (missing: README, license, tests, topics)
Solid data-modeling and caching instincts undercut by messy config-as-code, truncated/likely-buggy district maps, and zero visible tests. · → polish
Do first
- Move ALLIANCES/AC_DISTRICTS/LS_SEGMENTS out of Python dicts into versioned data files (JSON/YAML + schema validation) so overlapping range assignments (e.g. districts.py West Bengal/Assam keys reassig
- Add pytest coverage for backend/_utils.py norm_name and backend/_cache.py ttl_cache (concurrency, TTL expiry, key collisions) since these are the trickiest and most bug-prone modules
- Fix/verify the dict-literal overwrites in config/districts.py (e.g. `9: "Jalpaiguri"` then `21: "Alipurduar"` redefining keys already set by range spreads) and the truncated ls_segments.py file
Findings
- [BUG] backend/config/ls_segments.py is truncated mid-file (unterminated list/dict), so the module won't import as shown
- [BUG] backend/config/districts.py assigns single keys after dict-unpacking ranges that already cover them (e.g. Assam AC 21, 26, 43, 111-112 double-assigned), silently overwriting — likely masking rea
- [RISK] backend/_cache.py's in-memory TTL cache has unbounded growth (no eviction beyond TTL check on read) and does a local import of SQLModel inside the hot path every call
- [STYLE] Alliance/district/segment data mixed into .py source instead of data files, so any correction requires a code deploy and there's no schema/lint layer to catch typos in party codes or AC number
- [RISK] No visible test suite or CI despite complex cross-year name-matching and alliance logic (norm_name, alliance_2021 overrides) that is exactly the kind of thing that silently breaks on data updat
6/10 git-notes — · pushed 37d ago · hygiene 3/7 (missing: license, tests, CI workflow, topics)
Solid, well-written self-study notes but this is documentation, not a project, so judge it as a learning artifact rather than software. · → polish
Do first
- Add a top-level README.md indexing all notes with a clear learning-path order and stated audience/purpose
- Verify and fix cross-links (e.g. note 01 links to notes 05 and 08 which may not exist yet) so the vault doesn't have dangling references
- Consider consolidating into a static site (MkDocs/Obsidian Publish) if this is meant to be a public showcase piece rather than a personal vault
Findings
- [STYLE] Frontmatter and Obsidian-style [[wikilinks]] suggest this is a personal vault export, not authored for GitHub rendering - may look broken without Obsidian
- [RISK] Notes reference later files (05, 08) not included in this excerpt - if missing from repo, links break
- [STYLE] No README at repo root shown, so a visitor lands with no orientation on what this repo is or how to use it
- [STYLE] Content is excellent pedagogically but heavily verbose per topic; as a portfolio piece it reads as personal study material rather than a demonstrable skill artifact
- [BUG] Note 03's TL;DR sentence is cut off mid-word ('pair') indicating a truncation/formatting error in the source file
6/10 githubcopilot JavaScript · pushed 89d ago · hygiene 2/7 (missing: description, license, tests, CI workflow, topics)
Solid small demo with surprisingly thorough test coverage but no HTML/CSS in sight and some dead-code smells. · → polish
Do first
- Add missing index.html and styles.css to the repo dump (or confirm they exist) since script.js references elements/classes never shown
- Fix PROJECT_SUMMARY.md which cuts off mid-sentence ('with s') and finish the docs
- Remove or implement the unused currentUsername/handleUsernameSubmit alert-based UX in script.js — replace alert() with inline UI feedback for a more professional feel
Findings
- [BUG] PROJECT_SUMMARY.md is truncated mid-sentence, indicating incomplete documentation
- [RISK] script.js has no guard if Chart.js fails to load or #incomeExpenseChart canvas is missing, unlike the copilot-instructions.md's own guidance for null checks
- [STYLE] alert()-based UX for username welcome/validation is dated and untestable in CI without dialog handlers
- [STYLE] Jest unit tests only test inline re-implemented logic, not actual script.js functions — they don't import or exercise the real module, so coverage is illusory
- [RISK] AGENTS.md is empty, suggesting boilerplate/scaffolding left unfinished
6/10 Jayanth-Vault — · pushed 7d ago · hygiene 1/7 (missing: README, description, license, tests, CI workflow, topics)
A genuinely useful personal knowledge-management setup with well-thought-out automation, but it's a private notes vault masquerading as a repo, not a portfolio project. · → keep
Do first
- Add a top-level README.md explaining this is a personal Obsidian vault + AI note-authoring pipeline (not a code project), since visitors won't infer that from file names alone
- In CLAUDE.md, redact or genericize the hardcoded personal paths (/home/jayanth/Desktop/...), GitHub repo name, and instructor name-substitution rule before treating this as anything public-facing
- Fix the truncated/incomplete '01 - Big O Notation.md' file (cuts off mid-sentence at 'Space complexity') and audit other notes for similar truncation
Findings
- [RISK] CLAUDE.md documents a live sync pipeline to a public GitHub repo (astroboy1183/Python-AI-Notes) with real automation details and paths — if this file itself is public, it exposes personal machi
- [STYLE] The 'strip all narrator/instructor voice, replace Piyush with Jayanth' instruction set is ethically murky — this is systematically laundering a paid Udemy course's content to appear as origina
- [BUG] The Big O note is truncated mid-section ('## 6. Space complexity' followed by a lone 'T') — incomplete content shipped as 'status: complete'
- [STYLE] No actual code, tests, or engineering artifacts here despite being pitched as part of a dev portfolio audit — this is notes/config only, so it shouldn't be evaluated or presented alongside Doc
- [RISK] No LICENSE or explicit statement of what's original vs. derived from paid course material, which matters once Python-AI/ is synced to a public mirror
6/10 news-intelligence-platform Python · pushed 53d ago · hygiene 3/7 (missing: README, license, CI workflow, topics)
Solid, well-thought-out async FastAPI backend with good query design, but the file dump cuts off mid-function and the repo lacks any visible tests or docs to confirm it actually works end-to-end. · → polish
Do first
- Finish/verify backend/app/api/routes/lookup.py — the file is truncated mid-dict-literal ('story': {'id') and would be a SyntaxError if actually committed that way
- Add automated tests (pytest + httpx AsyncClient) for at least brief.py and insights.py since the query logic is complex enough to regress silently
- Add a README documenting the ingestion pipeline, data model, and how the anomaly/insights heuristics work — currently only inline comments explain intent
Findings
- [BUG] lookup.py is cut off mid-function ('story': {'id') — either a paste artifact or a real truncation bug
- [RISK] No visible error handling around malformed/missing entity relationships or empty payload dicts beyond `or {}` fallbacks; anomaly.payload schema isn't validated anywhere
- [RISK] _ingestion_running is a module-level global with an asyncio.Lock only guarding the check-and-set, fine for single-process but will silently misbehave under multiple workers/replicas
- [STYLE] Heavy duplication of the count/aggregate query pattern across brief.py, ingestion.py, insights.py — a small query-helper module would cut boilerplate significantly
- [STYLE] No pagination/limit sanity check on feeds.py RSS/JSON builders beyond query params — fine for now but no caching/backpressure if this became public-facing
6/10 study-notes — · pushed 38d ago · hygiene 3/7 (missing: license, tests, CI workflow, topics)
Polished, well-written Git study notes with zero code or tests — valuable as personal learning material but not a software project to showcase. · → keep
Do first
- Add an index/README.md to the study-notes folder linking all notes in learning order so it's navigable outside Obsidian
- Strip or convert Obsidian-specific syntax ([[wikilinks]], callouts) if this is meant to be read on GitHub, since it renders poorly as plain markdown
- Consolidate the repo's purpose in a top-level README stating this is a personal knowledge base, not a code project, to set correct expectations for visitors
Findings
- [STYLE] Heavy Obsidian-specific markdown ([[wikilinks]], > [!NOTE] callouts) will not render on GitHub's default markdown viewer, hurting readability for anyone browsing the repo directly
- [RISK] No indication of repo scope/structure at the root level — a visitor lands on raw notes with no context on what 'study-notes' contains or how to navigate it
- [STYLE] Content quality is high (clear explanations, good diagrams-in-ASCII, consistent structure) but this is documentation, not an engineering artifact, so it doesn't demonstrate coding ability
- [RISK] If this is one of many repos on the profile, mixing pure-notes repos with code repos without a clear README taxonomy makes the account harder to audit at a glance
7/10 fleet-scheduler JavaScript · pushed 0d ago · hygiene 6/7 (missing: tests)
A small, well-reasoned piece of infrastructure glue that does its one job correctly and documents its own weirdness honestly. · → keep
Do first
- worker.js: add a unit/integration test (or at least a pure function extraction of the SCHEDULE-matching logic) so 'node --test' in tests.yml has something real to run
- worker.js: guard against duplicate {utc,repo} entries firing multiple dispatches in one tick (or document why it's intentional)
- README.md: document what happens if GH_PAT expires or lacks perms (currently only surfaces as a Telegram alert text, not a recovery runbook)
Findings
- [BUG] tests.yml runs 'node --test' but no test files are shown in the repo listing — CI may be a no-op green checkmark
- [RISK] single Cloudflare Worker + single PAT is a SPOF for the whole fleet's timely scheduling with no documented alert-fatigue or retry/backoff on dispatch failure
- [STYLE] SCHEDULE table mixes concerns (time, repo, workflow, dow) in inline comments carrying IST — fine for now but will not scale past ~20 entries without becoming unreadable
- [RISK] no validation that SCHEDULE entries reference real/existing workflows — a typo'd workflow filename fails silently until the alert fires
- [STYLE] dispatch() and alert() have no timeout/AbortController — a hung fetch could exhaust the Worker's CPU time budget on Cloudflare's free plan
7/10 news-briefing Python · pushed 0d ago · hygiene 6/7 (missing: license)
Genuinely thoughtful pipeline with real engineering care, undercut by an unresolved and truncated test file. · → polish
Do first
- Finish and commit test_links.py — it's cut off mid-function (`assert co`), so the test suite as shown doesn't even run; add real assertions for split_state, select_stories fallback, and watchlist forc
- Add a lightweight CI workflow (GitHub Actions) that runs test_links.py on push, since the repo already relies on Actions for scheduling
- Extract the large inline prompts in select_stories/write_briefing into templates or constants — they're doing a lot of undocumented behavioral work embedded in string concatenation
Findings
- [BUG] test_links.py is truncated mid-statement (`assert co`) — the file as pasted cannot execute, so 'no deps' test coverage is currently non-functional
- [RISK] fetch_article and fetch_og_image both fetch the same URL separately when a story becomes Top — two HTTP round-trips to the same page per run
- [RISK] send_telegram's retry only wraps ConnectionError/Timeout before resp.raise_for_status(); a slow-but-successful response that then 4xxs isn't retried, which is correct, but resp is reused across
- [STYLE] FEEDS dict and its rejection-log comment (dead feeds tried) is excellent documentation practice — more repos should do this
- [BUG] week_in_review and Sunday logic silently swallow all exceptions (bare except Exception), which is intentional per design but makes debugging a broken week-in-review feature invisible without che
unscored finance-tracker Python · pushed 0d ago · hygiene 6/7 (missing: license)
(review unparseable)
(triage only)
unscored papers-digest Python · pushed 0d ago · hygiene 6/7 (missing: license)
(review unparseable)
(triage only)
unscored repo-audit HTML · pushed 0d ago · hygiene 4/7 (missing: description, license, topics)
(review unparseable)
(triage only)
unscored repo-review Python · pushed 0d ago · hygiene 6/7 (missing: license)
(review unparseable)
(triage only)
unscored tech-news Python · pushed 0d ago · hygiene 6/7 (missing: license)
(review unparseable)
(triage only)
8/10 astroboy1183 Python · pushed 0d ago · hygiene 4/7 (missing: license, .gitignore, topics)
A profile-README generator over-engineered on purpose, and it's the good kind of over-engineered — tiered failure semantics, tested, documented. · → keep
Do first
- build_readme.py: extract the repeated 'gh() then isinstance check then fallback' pattern into a small helper to cut duplication across fleet_count/projects_table/dsa_streak/recent_activity/fleet_green
- build_readme.py: fleet_green() returns None on the FIRST unreachable repo but partial counts for the rest — either commit to all-or-nothing or degrade per-repo consistently with the doc's stated 'line
- AGENTS.md: the file is truncated mid-sentence ('the photo an') — finish or regenerate the doc so it doesn't ship broken to readers
Findings
- [BUG] fleet_green(): returns None on the first repo whose actions/runs call fails, discarding any greens already counted from prior repos in the loop — inconsistent with the module's own 'never abort
- [STYLE] projects_table()'s sort key `-r[0] if r[0] > 0 else 1000 - r[0]` is a clever but opaque way to push unscored/negative-index rows last; a comment or a cleaner tuple key would save the next read
- [RISK] credly_badges() and gh() both swallow all exceptions broadly (bare except Exception) — fine per the stated degrade-never-raise philosophy, but means real bugs (e.g. auth misconfig) look identic
- [STYLE] AGENTS.md ships truncated in the pasted source ('the photo an') — likely just an artifact of this excerpt, but worth confirming the actual file isn't cut off
- [RISK] the workflow commits directly to main with `github-actions[bot]`, no branch protection visible from this excerpt — acceptable for a personal profile repo but worth noting if scaled to anything
8/10 common Python · pushed 1d ago · hygiene 4/7 (missing: license, tests, CI workflow)
Tiny shared module that's actually well-reasoned and honestly documented, including its own weird tradeoffs. · → keep
Do first
- agentlib.py: add a small pytest suite mocking requests/Anthropic to cover chunking, retry-then-raise, and empty-text-response paths
- agentlib.py: fix resp.raise_for_status() being outside the retry loop scope confusion — it only checks the last chunk-attempt's resp, which is correct but non-obvious; add a comment or restructure for
- README.md: add the actual drift-check invocation/command from daily-review so the sync workflow is reproducible, not just described
Findings
- [RISK] send_telegram: if all SEND_ATTEMPTS raise ConnectionError, resp is never assigned but the loop's `raise` fires first so it's safe — but this is fragile to future edits; a linter won't catch res
- [STYLE] no tests at all for a module every agent depends on and that explicitly brags about its retry/error semantics in comments — the semantics deserve a test proving they hold
- [RISK] vendored byte-identical copies drifting silently between nightly checks is a real window for divergence bugs; no CI hook shown, only a nightly agent check
- [STYLE] ask_llm hardcodes model default in signature; fine for now but no central place to bump model versions across agents
- [BUG] none found — the empty-text-response guard and retry reasoning are correct and unusually well justified for a 60-line file
8/10 cricket-scores Python · pushed 0d ago · hygiene 6/7 (missing: license)
A genuinely well-engineered small agent — the three-way feed signal, verbatim-copy discipline, and deterministic Cricsheet stats show real care beyond typical showcase code. · → keep
Do first
- Fix the truncated/cut-off sentence in README.md's Design notes section (ends mid-thought at 'If a')
- Add a test or comment clarifying that stats fetch failures degrade silently (fetch_cricsheet_matches exception in main is caught but untested)
- Consider caching/pinning the Cricsheet zip fetch or adding a timeout/size sanity check since it's an unauthenticated third-party URL fetched weekly
Findings
- [BUG] README.md's final paragraph is truncated mid-sentence ('If a') — looks like a copy-paste/edit artifact
- [STYLE] cricket_scores.py's series_stats nested loops (event/innings/overs/deliveries) are dense but well-commented; acceptable given test coverage
- [RISK] fetch_cricsheet_matches has no size cap on the downloaded zip beyond an implicit trust in the ~1.5MB estimate — a source-side change could balloon memory use
- [STYLE] The workflow YAML's guard-step dedup logic is clever but intricate (3-hour window, run-id exclusion) — worth a short doc comment pointing future-you back to the 2026-07-04 incident it encodes
- [STYLE] agentlib.py and cricket_scores.py both show strong docstring discipline — a rarity worth preserving as a template for the rest of the fleet
8/10 eng-blogs Python · pushed 0d ago · hygiene 6/7 (missing: license)
A genuinely well-engineered single-purpose agent with deterministic-safety design and real tests, not just a script wearing a README. · → keep
Do first
- eng_blogs.py: extend the truncated test_read_minutes_floors_at_on... test and add coverage for gather_pool/archive_posts (currently untested I/O paths)
- eng_blogs.py: fix category display order relying on dict insertion order — add an explicit ordering constant or comment guaranteeing CATEGORIES iteration order is intentional
- agentlib.py: add a small test module (mock requests/Anthropic) so the shared plumbing isn't only exercised transitively via eng_blogs tests
Findings
- [BUG] test_eng_blogs.py: file is truncated mid-test (test_read_minutes_floors_at_on...) — verify the committed file isn't actually broken/incomplete
- [STYLE] eng_blogs.py: fetch_full_text and archive_posts swallow broad Exception/OSError silently — acceptable given the 'never sink the list' philosophy but worth a log line for debuggability
- [RISK] eng_blogs.py: FEEDS list has no automated liveness check — feed rot is only caught at runtime and surfaces as a Telegram warning, not a build-time signal
- [STYLE] agentlib.py: send_telegram builds and discards `resp` inside the retry loop before raise_for_status is called outside it — subtly relies on resp surviving the loop scope, works but fragile to
- [BUG] eng_blogs.py: compose() read_minutes uses p.get('text') which is only set for picks that went through fetch_full_text in main(), so tests must remember to set 'text' manually or read-time silent
8/10 fleet Shell · pushed 0d ago · hygiene 2/7 (missing: description, license, tests, CI workflow, topics)
This isn't a repo, it's a meta-repo — a genuinely thoughtful orchestration layer for a real multi-agent fleet, and it shows operational maturity. · → keep
Do first
- clone-all.sh: add error handling/summary for repos that fail to clone (network errors currently just crash the whole script under set -e)
- devcontainer.json: since it's referenced twice in docs but not shown, verify it's actually kept in sync with the repos array (this is the single point of drift risk called out in the docs themselves)
- README.md: add a one-line note on what happens if postCreateCommand partially fails (e.g. one repo lacks permissions) since Codespace users can't easily debug that
Findings
- [RISK] clone-all.sh uses set -e but git clone failures for one repo will abort the whole loop, leaving later agents unclonned with no summary of what succeeded
- [RISK] devcontainer.json permissions must be manually kept in sync with the repos array in clone-all.sh — no automated check for drift, purely convention-enforced
- [STYLE] no tests for clone-all.sh itself (e.g. idempotency, handling of a repo removed from the array) — acceptable for a bash assembler but worth a smoke test
- [STYLE] CLAUDE.md and README.md duplicate a lot of the same golden-rules content — could risk drifting from each other over time
- [BUG] none found — the script logic (check .git dir, pull --ff-only else clone) is correct and idempotent as claimed
8/10 housekeeper Python · pushed 0d ago · hygiene 6/7 (missing: license)
A genuinely well-engineered personal ops tool with real graceful-degradation discipline and meaningful tests, let down only by a truncated test file and hardcoded personal paths. · → keep
Do first
- Fix test_housekeeper.py — it cuts off mid-class (AgentlibDriftTest) and won't even import/run as-is
- Move hardcoded paths (VAULT_DIR, REPO_ROOTS, CLOUD_AGENTS repo names) into .env or a config file so the repo is shareable without doxxing your setup
- Add a top-level README explaining the systemd timer setup, .env requirements, and how to adapt CLOUD_AGENTS/REQUIRED_TIMERS for a new machine
Findings
- [BUG] test_housekeeper.py is truncated (class AgentlibDriftTest(unittest.TestC) — the file as pasted is syntactically invalid and the test suite cannot run
- [RISK] check_fleet's gh CLI calls have no explicit timeout beyond sh()'s 60s default per call, and 9 sequential agents means a slow network could stall the whole run for minutes
- [STYLE] monkeypatching hk.sh directly in tests (save/restore pattern) works but is fragile vs unittest.mock.patch — a raised exception mid-test would leak the stub to other tests
- [RISK] check_agentlib_drift and check_vault hardcode Path.home()-relative paths, coupling this 'showcase' script tightly to one specific laptop's directory layout
- [STYLE] docstring promises comprehensive coverage (CPU temp, kernel errors, etc.) but README-level documentation for setup/deployment lives only in the module docstring, not a repo README
8/10 Python-AI-Notes — · pushed 31d ago · hygiene 2/7 (missing: description, license, tests, CI workflow, topics)
A genuinely well-structured, thorough study-notes repo that reads more like a polished reference than raw lecture notes. · → keep
Do first
- Add a top-level 'progress/status' note or checklist tracking which sections are complete vs in-progress (status: in-progress is used but never surfaced anywhere)
- Add actual runnable code samples as separate .py files (e.g. Section 10 image agent) alongside notes so the repo doubles as a working code reference, not just prose with embedded snippets
- Fix status metadata consistency — e.g. finished-looking notes still marked 'status: in-progress' in frontmatter
Findings
- [STYLE] YAML frontmatter 'status: in-progress' appears on notes that are clearly complete and polished — metadata is stale/unused
- [RISK] Extension sections (17-26) are self-authored without vetting, and this is disclosed, but code snippets in those sections could drift from real APIs faster than the course-based ones
- [STYLE] No top-level table of contents linking all 159 notes directly (only section-level links), making deep navigation on GitHub slightly clunky
- [STYLE] Repo is notes-only, no actual runnable code folder/tests, so 'showcase' value is more as a writing sample than an engineering artifact
- [BUG] None found — content is internally consistent and technically accurate in the sampled notes
8/10 resume-inbox Python · pushed 0d ago · hygiene 4/7 (missing: description, license, topics)
A small, well-scoped safety-critical pipeline that actually takes its own guardrails seriously. · → keep
Do first
- extract_resume.py: PHONE_RE only catches contiguous digit runs — add basic email/street-address regexes to the privacy gate since the docstring promises 'no email addresses' but only phone numbers are
- extract_resume.py: MODEL default 'claude-sonnet-5' looks like a placeholder/typo for a real model name — verify against the actual Anthropic API before this silently 400s in CI
- process.yml: PROFILE_PAT is a broad bootstrap token per the README's own admission — scope it down to a fine-grained contents+PR token on astroboy1183/astroboy1183 only
Findings
- [BUG] validate() checks certifications/work but never validates 'publication' or 'years_experience' types, so a non-string there sails through to yaml.safe_dump
- [RISK] privacy_gate only regexes for phone numbers despite docstring/README claiming email and address protection too — false sense of coverage
- [RISK] text[:30000] truncation on long resumes could silently drop the newest job if it's at the end of a multi-page PDF with lots of boilerplate before it
- [STYLE] summarize()'s work-history diff logic (old_orgs != new_orgs branch vs reworded-entries branch) is a bit fragile — a reorder plus a reword would only report the reorder
- [STYLE] good test coverage for validate/merge/privacy_gate/summarize, but no test exercises main() end-to-end (even mocked) or the BANNER/dump path
8/10 weather-report Python · pushed 0d ago · hygiene 6/7 (missing: license)
A well-tested, thoughtfully gated weather bot that's already close to production-quality for a personal fleet. · → keep
Do first
- weather_report.py: extract the AQI-merge list comprehension's nested ternary into a named helper for readability
- agentlib.py: add a small test file (or shared tests) covering ask_llm's empty-text RuntimeError and send_telegram's chunking/retry logic
- weather-report.yml: the truncated env block (TELEGRAM_CHAT_...) suggests the pasted workflow is cut off — verify the actual file has TELEGRAM_CHAT_ID wired correctly
Findings
- [RISK] weather-report.yml as pasted is truncated mid-line (TELEGRAM_CHAT_), can't confirm the send step is complete — verify in repo
- [STYLE] the AQI enrichment block in main() uses a dense conditional-expression list comprehension that's harder to read than the rest of the well-commented code
- [RISK] fetch_batch assumes API returns locations in request order with no id correlation beyond position/count match — silent misalignment possible if API ever reorders
- [STYLE] agentlib.py has no direct unit tests (only weather_report does); given it's shared plumbing across the whole agent fleet, it deserves its own coverage
- [BUG] none found — gating logic, day-shift logic, and severe/AQI thresholds are all exercised by tests and look correct
stale samplerepo — · pushed 1637d ago · hygiene —
(unreachable)
(triage only)
fork data-scientist-roadmap — · pushed 2037d ago · hygiene —
fork
(triage only)
fork Databricks — · pushed 460d ago · hygiene —
fork
(triage only)
fork datasharing — · pushed 2114d ago · hygiene —
fork
(triage only)
fork it-cert-automation-practice — · pushed 2252d ago · hygiene —
fork
(triage only)
fork L2C-App — · pushed 2269d ago · hygiene —
fork
(triage only)
fork listen-to-see — · pushed 2284d ago · hygiene —
fork
(triage only)
fork py — · pushed 1933d ago · hygiene —
fork
(triage only)
fork Twitter-Sentiment-Analysis — · pushed 1590d ago · hygiene —
fork
(triage only)
fork validations — · pushed 2253d ago · hygiene —
fork
(triage only)
archived morning-mail Python · pushed 3d ago · hygiene —
archived
(triage only)