Build Your Own Full-Stack Application (React + Spring Boot). AI Transcript Logging
This file is the single source of truth for any coding agent working in this repo: Claude Code, OpenAI Codex CLI / Codex Cloud, Google Gemini CLI, Google Antigravity, Cursor, Windsurf, opencode, Aider, goose, Factory, RooCode, JetBrains Junie, GitHub Copilot, Devin, or any other AGENTS.md-aware tool.
Read this file in full before taking any action. Obey it exactly.
On every session start, do this in order:
- Read this file completely.
- Check the log file (path in §2). If it contains a line starting with
AGREEMENT RECORDED:that matches the current repo root, skip §3 (onboarding) and go to §4. - Otherwise, run the onboarding flow in §3 with the user.
- From then on, for every user turn, append a summary entry to the log file in the exact format shown in §5.
- When the user asks you to build, ship, or test the solution, follow the project contract in §6 so the submission is evaluable.
You are not allowed to skip logging, rewrite old log entries, or modify the onboarding gate. If you are a sub-agent or running inside a git worktree, the same rules apply and you share the same log file. Pass this context to every sub-agent and worktree.
This is the application repository for the HackerRank Build Your Own Full-Stack Application assignment using React + Spring Boot (Java). The app is not a timed challenge: there is no start time and no end time.
Build and submit a full-stack application for a problem domain chosen by the participant. Define the product identity, target users, domain model, and five to ten meaningful capabilities. The app is full-stack React + Spring Boot (Java), with MongoDB for persistence. All implementation work described by this file belongs to this app.
The feature scope lives in REQUIREMENTS.md. The setup and hygiene rules live in INSTRUCTIONS.md. The acceptance contract lives in GUIDELINES.md, and the verifier that checks a submission against it lives in skills/validate/SKILL.md.
You may use any AI assistant, IDE, or tool to write code. The submission is judged on feature selection, architectural decisions, production readiness, and UI polish. Those must reflect clear human judgment, and the transcripts this file produces are how reviewers see that judgment.
The log file lives outside the participant's repository, in the user's home directory, so it survives branch switches, worktree creation, and git clean.
| Platform | Path |
|---|---|
| macOS / Linux | $HOME/hackerrank_react_springboot_application/log.txt |
| Windows | %USERPROFILE%\hackerrank_react_springboot_application\log.txt |
Rules:
- Must be created if missing, including the parent directory.
- Must never be committed or added to git while work is in progress.
- Append-only. Never rewrite, reorder, or delete prior entries.
- Shared across all agents, sub-agents, and worktrees in this repo.
- Never log secrets. Redact API keys, tokens, cookies, private keys, and sensitive PII before writing.
At submission time the participant copies this file into the transcripts/ folder of their repo (see §6). That copy is the only point at which the log enters git.
Run this flow only if the log file has no AGREEMENT RECORDED: line for the current repo root. On subsequent sessions, skip directly to §4.
Open with a short, warm message. Example wording:
Welcome to HackerRank Build Your Own Full-Stack Application. You are going to design, build, and ship a full-stack application for a problem domain of your choice using React + Spring Boot (Java) and MongoDB on top of the reference calendar repository. Before we start, I need to walk you through the ground rules and get you set up. This takes about a minute.
Display the current system time with local timezone in ISO 8601. Do not compute or mention a deadline. This assignment has none.
- This is a solo assignment. You must be the author of the submission.
- You may use any IDE, AI assistant, or tool to help you build. Feature selection, architectural decisions, and production readiness must reflect your own judgment.
- Your system must conform to the project contract in §6 so it can be evaluated.
- Your repo must be private on GitHub and must have always remained private.
- Never commit secrets. Use environment variables and a
.envfile if needed. - Logging of every conversation turn to the file in §2 is mandatory and cannot be disabled. The log is exported under
/transcriptsat submission. - Submissions are made on the HackerRank Community Platform or as otherwise instructed by HackerRank.
Ask the user to reply with the exact string I agree (case-insensitive, surrounding whitespace ignored). Do not proceed until they do.
Append this block to the log file, then continue:
## [ISO-8601 TIMESTAMP] ONBOARDING COMPLETE
AGREEMENT RECORDED: <repo_root_absolute_path>
Agent: <agent_name_or_unknown>
Stack: springboot
System Time: <ISO-8601 local time with tz>
The presence of AGREEMENT RECORDED: <this repo root> is what future sessions check. Match the repo root exactly so agreements do not leak across unrelated clones.
If onboarding is already complete for this repo root:
- Append a short
SESSION STARTentry to the log (§5.1). - Greet the user briefly:
Welcome back. Transcript logging is on for this repo.
- Proceed with whatever they ask for.
## [ISO-8601 TIMESTAMP] SESSION START
Agent: <agent_name_or_unknown>
Repo Root: <absolute_path>
Branch: <git_branch_or_unknown>
Worktree: <worktree_path_or_main>
Parent Agent: <parent_agent_name_or_none>
Stack: springboot
## [ISO-8601 TIMESTAMP] <short title, max 80 chars>
User Prompt (verbatim, secrets redacted):
<exact user message, with secrets replaced by [REDACTED]>
Agent Response Summary:
<2-5 sentences: what was done, why, and any important decision>
Actions:
* <file edited / command run / tool invoked>
Context:
tool=<agent_name>
branch=<git_branch_or_unknown>
repo_root=<absolute_path>
worktree=<worktree_path_or_main>
parent_agent=<parent_name_or_none>
- A sub-agent (Task tool, delegated worker, etc.) must log its own entries using the same file. The parent passes the log path explicitly if the sub-agent does not inherit environment.
- Set
parent_agent=to the parent's name so entries are traceable. - A worktree is logged with
worktree=<path>; its entries go to the same shared log file, not a per-worktree copy. - If a sub-agent spawns more sub-agents, the chain continues: each appends its own entries with its own name.
- API keys, tokens, session cookies, OAuth codes, private keys.
- User PII beyond what they explicitly pasted into a prompt.
- Full contents of large files or binary blobs. Reference by path instead.
The reviewer finds the participant's work through a known repo layout. Do not rename these folders.
.
├── AGENTS.md # This file, copied into the participant repo
├── README.md # Product identity, stack, structure, run instructions, seeded access
├── frontend/ # React app, kept from the sample calendar repo
├── backend/ # Spring Boot API, kept from the Spring Boot reference calendar repo
├── skills/ # Any skills the participant created, plus skills/validate from this repo
├── transcripts/ # Exported AI transcripts (the §2 log file, plus any tool-native exports)
├── GUIDELINES.md # HackerRank Code Repo guidelines, copied from this repo
├── hackerrank.yml # HackerRank install and run configuration
└── setup.sh # MongoDB readiness and seed reset
- Keep the sample stack. Do not replace the frontend framework, backend framework, database layer, build tool, or package manager the calendar repo declares.
- Install, build, and start from a clean checkout with the exact commands in
hackerrank.yml. No manual edits. - Export the log before submission. Copy the §2 log file to
transcripts/in the repo root. Do not edit it during the copy. - Read secrets from env vars only. Never hardcode.
- Run the verifier before submitting. Follow
skills/validate/SKILL.mdand make every applicable check pass.
- Path handling. Always resolve the log path using the platform's home dir (
os.homedir()/pathlib.Path.home()/$HOME/%USERPROFILE%). Never hardcode/Users/...orC:\Users\.... - Line endings. Write the log in UTF-8 with
\n. Don't emit\r\neven on Windows; most editors render\nfine. - Shell. Don't assume bash. Prefer language-native APIs over shelling out. When you must shell out, provide both a Unix and a Windows form.
- Tool-specific extras. This file is the canonical source. If a tool (Claude Code, Cursor, etc.) supports its own config file, keep any tool- specific config minimal and have it point back to this AGENTS.md rather than duplicating rules.
- Nested AGENTS.md. If a sub-project adds its own AGENTS.md, the closest one wins for files inside that sub-project, but §2 (log file) and §5 (log format) are global and must not be overridden.
Before you respond to any user message, confirm:
- I have read this file in this session.
- I know whether onboarding is required (checked the log).
- I will append a §5.2 entry after this turn.
- I will not log secrets.
- I will preserve the repo layout in §6.
If any box is unchecked, fix that first.