Add devsync workflow and shared secrets#259
Conversation
it uses UV and Rsync, and creates a new directory called ChatDKU-DevSync. I recommend everyone to move env variables to ~/.profile
Fixed 2 file(s) based on 2 unresolved review comments. Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
chatdku_devs and hooks to bash and zsh
📝 WalkthroughWalkthroughThis PR adds developer tooling and shared-secrets infrastructure. New artifacts: a devsync.sh script to rsync the repo to a remote dev host, prepare the remote sync directory (including optional ~/.env symlink), and open an interactive SSH session that runs Sequence Diagram(s)sequenceDiagram
participant Local as Local Machine
participant SSH as SSH Client
participant Remote as Remote Server
participant Shell as Remote Shell
Local->>Local: Determine SSH user (gh api user || whoami)
Local->>Local: Resolve target host and remote dir (env/defaults)
Local->>Remote: Ensure remote dir exists (ssh mkdir -p)
Remote->>Remote: Create ~/ChatDKU-DevSync if missing
Remote->>Remote: Create symlink ${REMOTE_DIR}/.env -> ~/.env (if present) or warn
Local->>Local: Build rsync filter from .gitignore + explicit excludes
Local->>Remote: rsync -avz --delete (repo root -> ${REMOTE_DIR})
Remote->>Remote: Update files in ${REMOTE_DIR}
Local->>Remote: Open interactive ssh session -> cd ${REMOTE_DIR}
Shell->>Shell: Run: uv sync
Shell->>Shell: Run: uv run <python command | python -m chatdku.core.agent>
Shell-->>Local: Interactive terminal with agent running
Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
|
Btw, this is a cherry-picked PR from the 225 feature branch, because I got sidetracked and made this tool while working on course recommendations. |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Documentations/Env-variables.md`:
- Line 13: The line in Documentations/Env-variables.md contains a typo: replace
the incorrect `.zshsrc` token with `.zshrc` so the sentence reads "Adding
`source $HOME/.profile` to your `~/.bashrc` and/or `~/.zshrc` file
(recommended)"; update the `.zshsrc` occurrence accordingly.
In `@Documentations/Shared-Secrets.md`:
- Around line 47-50: The commands in Documentations/Shared-Secrets.md (e.g.,
invoking admin_setup.sh and editing chatdku_env.sh) assume the user is in the
repository root; update the doc so each command either uses absolute paths or
explicitly states "run from the repository root (project root)" before the
examples, and mirror that change for the other similar snippets in the file;
specifically edit the snippets referencing admin_setup.sh and chatdku_env.sh to
show either the absolute path to scripts (or prefix with $REPO_ROOT) or add a
single sentence telling readers to cd to the repo root before running the shown
commands.
- Around line 84-86: The markdown reference to
scripts/secrets/chatdku_env.sh.example triggers MD059; update the
Shared-Secrets.md text so it uses explicit descriptive link text and a clear
instruction (e.g., "update scripts/secrets/chatdku_env.sh.example to add export
FOO=\"...\"") instead of a bare filename, and add the recommended export line to
the master file; ensure the doc mentions the exact variable name `FOO` and the
target file `scripts/secrets/chatdku_env.sh.example` so the linter recognizes
the descriptive link/style and new admins can find the var.
In `@scripts/secrets/admin_setup.sh`:
- Around line 42-61: The environment variable names in this admin_setup.sh
snippet are inconsistent with the rest of the codebase; rename OPENAI_API_KEY to
LLM_API_KEY, rename
POSTGRES_HOST/POSTGRES_PORT/POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB to
DB_HOST/DB_PORT/DB_USER/DB_PASSWORD/DB_NAME respectively, add the missing
LLAMAPARSE_API, PG_INGEST_URI and PHOENIX_PORT variables with sensible
placeholders, and update any references in this file (e.g., REDIS_*, HF_TOKEN,
ANTHROPIC_API_KEY, PHOENIX_API_KEY/PHOENIX_COLLECTOR_ENDPOINT) to maintain the
same placeholder pattern so the created production secrets file uses the
canonical variable names used by the application.
In `@scripts/secrets/chatdku_env.sh.example`:
- Around line 1-25: The template env file exports variable names that don't
match what the application reads; update the exports in
scripts/secrets/chatdku_env.sh.example to use the names expected by
chatdku/config.py and chatdku/setup.py: rename OPENAI_API_KEY to LLM_API_KEY,
replace POSTGRES_HOST/POSTGRES_PORT/POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB
with DB_HOST/DB_PORT/DB_USER/DB_PASSWORD/DB_NAME, change
PHOENIX_COLLECTOR_ENDPOINT to PHOENIX_PORT (since the code builds the endpoint
dynamically), and add the missing variables LLAMAPARSE_API and PG_INGEST_URI so
config.py can load them.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 227f001d-20e8-4442-9cce-de9debe12c81
📒 Files selected for processing (9)
Documentations/DevSync.mdDocumentations/Env-variables.mdDocumentations/Phoenix.mdDocumentations/Shared-Secrets.mddevsync.shscripts/secrets/add_user.shscripts/secrets/admin_setup.shscripts/secrets/chatdku_env.sh.examplescripts/secrets/remove_user.sh
| # ChatDKU shared environment variables — EXAMPLE / template. | ||
| # The real file lives at /datapool/secrets/chatdku_env.sh on the dev host | ||
| # and is auto-sourced for members of the chatdku_devs group. | ||
| # Never commit real values to git. | ||
|
|
||
| # --- LLM / API credentials --- | ||
| export OPENAI_API_KEY="sk-REPLACE_ME" | ||
| export ANTHROPIC_API_KEY="sk-ant-REPLACE_ME" | ||
| export HF_TOKEN="hf_REPLACE_ME" | ||
|
|
||
| # --- Redis (vector + keyword store) --- | ||
| export REDIS_HOST="redis.internal" | ||
| export REDIS_PORT="6379" | ||
| export REDIS_PASSWORD="REPLACE_ME" | ||
|
|
||
| # --- Phoenix observability --- | ||
| export PHOENIX_API_KEY="REPLACE_ME" | ||
| export PHOENIX_COLLECTOR_ENDPOINT="http://phoenix.internal:6006" | ||
|
|
||
| # --- Postgres (syllabi / course metadata) --- | ||
| export POSTGRES_HOST="pg.internal" | ||
| export POSTGRES_PORT="5432" | ||
| export POSTGRES_USER="chatdku" | ||
| export POSTGRES_PASSWORD="REPLACE_ME" | ||
| export POSTGRES_DB="chatdku" |
There was a problem hiding this comment.
Environment variable names do not match what the codebase expects.
The template exports variables with names that differ from what chatdku/config.py and chatdku/setup.py actually read:
| Template exports | Codebase expects |
|---|---|
OPENAI_API_KEY |
LLM_API_KEY |
POSTGRES_HOST, POSTGRES_PORT, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB |
DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME |
PHOENIX_COLLECTOR_ENDPOINT |
PHOENIX_PORT (used to build endpoint dynamically) |
Additionally, the template is missing LLAMAPARSE_API and PG_INGEST_URI which are read by the config.
This will cause the application to fail to load credentials. Either update the template to match the existing config expectations, or update the config to read the new variable names (which would be a breaking change).
🛠️ Proposed fix to align with existing codebase
# --- LLM / API credentials ---
-export OPENAI_API_KEY="sk-REPLACE_ME"
+export LLM_API_KEY="sk-REPLACE_ME"
export ANTHROPIC_API_KEY="sk-ant-REPLACE_ME"
export HF_TOKEN="hf_REPLACE_ME"
+export LLAMAPARSE_API="REPLACE_ME"
# --- Redis (vector + keyword store) ---
export REDIS_HOST="redis.internal"
export REDIS_PORT="6379"
export REDIS_PASSWORD="REPLACE_ME"
# --- Phoenix observability ---
-export PHOENIX_API_KEY="REPLACE_ME"
-export PHOENIX_COLLECTOR_ENDPOINT="http://phoenix.internal:6006"
+export PHOENIX_PORT="6007"
# --- Postgres (syllabi / course metadata) ---
-export POSTGRES_HOST="pg.internal"
-export POSTGRES_PORT="5432"
-export POSTGRES_USER="chatdku"
-export POSTGRES_PASSWORD="REPLACE_ME"
-export POSTGRES_DB="chatdku"
+export DB_HOST="pg.internal"
+export DB_PORT="5432"
+export DB_USER="chatdku"
+export DB_PASSWORD="REPLACE_ME"
+export DB_NAME="chatdku"
+export PG_INGEST_URI="REPLACE_ME"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # ChatDKU shared environment variables — EXAMPLE / template. | |
| # The real file lives at /datapool/secrets/chatdku_env.sh on the dev host | |
| # and is auto-sourced for members of the chatdku_devs group. | |
| # Never commit real values to git. | |
| # --- LLM / API credentials --- | |
| export OPENAI_API_KEY="sk-REPLACE_ME" | |
| export ANTHROPIC_API_KEY="sk-ant-REPLACE_ME" | |
| export HF_TOKEN="hf_REPLACE_ME" | |
| # --- Redis (vector + keyword store) --- | |
| export REDIS_HOST="redis.internal" | |
| export REDIS_PORT="6379" | |
| export REDIS_PASSWORD="REPLACE_ME" | |
| # --- Phoenix observability --- | |
| export PHOENIX_API_KEY="REPLACE_ME" | |
| export PHOENIX_COLLECTOR_ENDPOINT="http://phoenix.internal:6006" | |
| # --- Postgres (syllabi / course metadata) --- | |
| export POSTGRES_HOST="pg.internal" | |
| export POSTGRES_PORT="5432" | |
| export POSTGRES_USER="chatdku" | |
| export POSTGRES_PASSWORD="REPLACE_ME" | |
| export POSTGRES_DB="chatdku" | |
| # ChatDKU shared environment variables — EXAMPLE / template. | |
| # The real file lives at /datapool/secrets/chatdku_env.sh on the dev host | |
| # and is auto-sourced for members of the chatdku_devs group. | |
| # Never commit real values to git. | |
| # --- LLM / API credentials --- | |
| export LLM_API_KEY="sk-REPLACE_ME" | |
| export ANTHROPIC_API_KEY="sk-ant-REPLACE_ME" | |
| export HF_TOKEN="hf_REPLACE_ME" | |
| export LLAMAPARSE_API="REPLACE_ME" | |
| # --- Redis (vector + keyword store) --- | |
| export REDIS_HOST="redis.internal" | |
| export REDIS_PORT="6379" | |
| export REDIS_PASSWORD="REPLACE_ME" | |
| # --- Phoenix observability --- | |
| export PHOENIX_PORT="6007" | |
| # --- Postgres (syllabi / course metadata) --- | |
| export DB_HOST="pg.internal" | |
| export DB_PORT="5432" | |
| export DB_USER="chatdku" | |
| export DB_PASSWORD="REPLACE_ME" | |
| export DB_NAME="chatdku" | |
| export PG_INGEST_URI="REPLACE_ME" |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@scripts/secrets/chatdku_env.sh.example` around lines 1 - 25, The template env
file exports variable names that don't match what the application reads; update
the exports in scripts/secrets/chatdku_env.sh.example to use the names expected
by chatdku/config.py and chatdku/setup.py: rename OPENAI_API_KEY to LLM_API_KEY,
replace POSTGRES_HOST/POSTGRES_PORT/POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB
with DB_HOST/DB_PORT/DB_USER/DB_PASSWORD/DB_NAME, change
PHOENIX_COLLECTOR_ENDPOINT to PHOENIX_PORT (since the code builds the endpoint
dynamically), and add the missing variables LLAMAPARSE_API and PG_INGEST_URI so
config.py can load them.
There was a problem hiding this comment.
@pomegranar This is true. I have DB_* on my .env instead of POSTGRES_* and also the missing variables.
There was a problem hiding this comment.
Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!
file or module arguments.
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
chatdku/core/agent.py (1)
1-1:⚠️ Potential issue | 🟡 MinorFix formatting issue flagged by CI.
The pipeline indicates
blackwould reformat this file. Runblack chatdku/core/agent.pyto resolve the lint failure.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@chatdku/core/agent.py` at line 1, Run the Python formatter on the file to satisfy CI: reformat chatdku/core/agent.py with Black (e.g., run black chatdku/core/agent.py) so the shebang and the rest of the file match Black's style and the lint error is resolved.
🧹 Nitpick comments (2)
devsync.sh (2)
63-72: Consider simplifying the quoting in remote SSH commands.The mixed single/double quote escaping (e.g.,
'"${REMOTE_DIR}"') is correct but hard to read. Using a heredoc or consistentprintf %qwould improve maintainability.♻️ Optional: cleaner approach using heredoc
step "linking ~/.env → ${REMOTE_DIR}/.env" -ssh "${SERVER}" ' - if [ -f ~/.env ]; then - ln -sf ~/.env '"${REMOTE_DIR}"'/.env - else - echo "WARN: ~/.env not found on server — skipping link" - fi -' -if ssh "${SERVER}" '[ ! -f '"${REMOTE_DIR}"'/.env ]'; then +ssh "${SERVER}" bash -s -- "$(printf %q "$REMOTE_DIR")" <<'EOF' + REMOTE_DIR="$1" + if [ -f ~/.env ]; then + ln -sf ~/.env "${REMOTE_DIR}/.env" + else + echo "WARN: ~/.env not found on server — skipping link" + fi +EOF +if ssh "${SERVER}" "[ ! -f $(printf %q "$REMOTE_DIR")/.env ]"; then warn "no .env in ${REMOTE_DIR} — the agent may fail to start" fi🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@devsync.sh` around lines 63 - 72, The SSH remote block in devsync.sh uses hard-to-read mixed quoting (e.g., the ln command with '"${REMOTE_DIR}"')—replace it with a clearer approach: run a heredoc-supplied script to ssh (invoke ssh "${SERVER}" with bash -s and a single-quoted heredoc) or pre-escape REMOTE_DIR using printf %q locally and interpolate that single safe token into the remote command; update the ln -sf ~/.env ... and the subsequent ssh existence check to use the same consistent quoting strategy and keep the warn "no .env in ${REMOTE_DIR} — the agent may fail to start" behavior intact so identifiers like REMOTE_DIR, SERVER, and the warn call remain unchanged.
60-60: Shellcheck SC2029 is a false positive here — client-side expansion is intentional.
REMOTE_DIRshould expand locally before being sent to the remote, so the warning can be ignored. However, ifREMOTE_DIRcontains special characters (spaces, quotes), the command could break. Consider usingprintf %qfor robustness if non-standard paths might be used.♻️ Optional: safer quoting
step "preparing remote directory $REMOTE_DIR on $SERVER" -ssh "${SERVER}" "mkdir -p ${REMOTE_DIR}" +ssh "${SERVER}" "mkdir -p $(printf %q "$REMOTE_DIR")"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@devsync.sh` at line 60, The ssh line ssh "${SERVER}" "mkdir -p ${REMOTE_DIR}" relies on local expansion of REMOTE_DIR and can break on spaces/quotes; fix by locally escaping REMOTE_DIR with printf '%q' into a new variable (e.g., REMOTE_DIR_Q) and use that escaped variable in the ssh command so the remote mkdir receives a safely quoted path; update occurrences of REMOTE_DIR in this context (the ssh mkdir invocation) to use the escaped variable.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@GUIDE.md`:
- Line 8: Replace the misspelled word "progess" with "progress" in the sentence
"This is a work in progess. Please tell me what you don't understand about this
guide and our project and I will add it to this document for future use." so the
sentence reads "This is a work in progress..." and keep the rest of the sentence
unchanged.
- Around line 69-72: Fix the typos and make the link text descriptive: replace
"equilavent" with "equivalent", "incorperate" with "incorporate", and
"stardards" with "standards"; also replace the non‑descriptive link text "here"
with a descriptive label like "autolinked references and URLs" so the Markdown
link is MD059-compliant and the sentence reads clearly (update the sentence
containing those words and the link text in GUIDE.md).
---
Outside diff comments:
In `@chatdku/core/agent.py`:
- Line 1: Run the Python formatter on the file to satisfy CI: reformat
chatdku/core/agent.py with Black (e.g., run black chatdku/core/agent.py) so the
shebang and the rest of the file match Black's style and the lint error is
resolved.
---
Nitpick comments:
In `@devsync.sh`:
- Around line 63-72: The SSH remote block in devsync.sh uses hard-to-read mixed
quoting (e.g., the ln command with '"${REMOTE_DIR}"')—replace it with a clearer
approach: run a heredoc-supplied script to ssh (invoke ssh "${SERVER}" with bash
-s and a single-quoted heredoc) or pre-escape REMOTE_DIR using printf %q locally
and interpolate that single safe token into the remote command; update the ln
-sf ~/.env ... and the subsequent ssh existence check to use the same consistent
quoting strategy and keep the warn "no .env in ${REMOTE_DIR} — the agent may
fail to start" behavior intact so identifiers like REMOTE_DIR, SERVER, and the
warn call remain unchanged.
- Line 60: The ssh line ssh "${SERVER}" "mkdir -p ${REMOTE_DIR}" relies on local
expansion of REMOTE_DIR and can break on spaces/quotes; fix by locally escaping
REMOTE_DIR with printf '%q' into a new variable (e.g., REMOTE_DIR_Q) and use
that escaped variable in the ssh command so the remote mkdir receives a safely
quoted path; update occurrences of REMOTE_DIR in this context (the ssh mkdir
invocation) to use the escaped variable.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: b867b760-d05a-44f4-959a-1836ec7985c3
📒 Files selected for processing (9)
Documentations/DevSync.mdGUIDE.mdchatdku/core/agent.pychatdku/core/tools/llama_index_tools.pychatdku/django/chatdku_django/chat/tools.pychatdku/django/chatdku_django/chat/views.pydevsync.shtests/test_load_retriever.pytests/test_retriever.py
✅ Files skipped from review due to trivial changes (5)
- chatdku/django/chatdku_django/chat/views.py
- chatdku/django/chatdku_django/chat/tools.py
- tests/test_load_retriever.py
- tests/test_retriever.py
- Documentations/DevSync.md
| - Again, Github has the equilavent features at [here](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls) | ||
|
|
||
| As you incorperate these steps into your developer journey, you will be better equipped for real world team-coding. | ||
| All the industry experts follow some form of stardards using GIT. You should learn to use it properly while you are here with us. | ||
| All the industry experts follow some form of stardards using GIT. You should learn to use it properly while you are here with us. |
There was a problem hiding this comment.
Fix spelling errors and link text.
Several typos flagged by static analysis:
- Line 69: "equilavent" → "equivalent"
- Line 71: "incorperate" → "incorporate"
- Line 72: "stardards" → "standards"
- Line 69: Non-descriptive link text "here" (MD059) — consider using descriptive text like "autolinked references and URLs".
📝 Proposed fixes
-- Again, Github has the equilavent features at [here](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls)
+- Again, GitHub has the equivalent features for [autolinked references and URLs](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls)
-As you incorperate these steps into your developer journey, you will be better equipped for real world team-coding.
-All the industry experts follow some form of stardards using GIT. You should learn to use it properly while you are here with us.
+As you incorporate these steps into your developer journey, you will be better equipped for real-world team-coding.
+All the industry experts follow some form of standards using Git. You should learn to use it properly while you are here with us.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - Again, Github has the equilavent features at [here](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls) | |
| As you incorperate these steps into your developer journey, you will be better equipped for real world team-coding. | |
| All the industry experts follow some form of stardards using GIT. You should learn to use it properly while you are here with us. | |
| All the industry experts follow some form of stardards using GIT. You should learn to use it properly while you are here with us. | |
| - Again, GitHub has the equivalent features for [autolinked references and URLs](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls) | |
| As you incorporate these steps into your developer journey, you will be better equipped for real-world team-coding. | |
| All the industry experts follow some form of standards using Git. You should learn to use it properly while you are here with us. |
🧰 Tools
🪛 LanguageTool
[grammar] ~69-~69: Ensure spelling is correct
Context: ...l-connected/) - Again, Github has the equilavent features at [here](https://docs.github....
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~71-~71: Ensure spelling is correct
Context: ...autolinked-references-and-urls) As you incorperate these steps into your developer journey...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~71-~71: Use a hyphen to join words.
Context: ...ey, you will be better equipped for real world team-coding. All the industry expe...
(QB_NEW_EN_HYPHEN)
[grammar] ~72-~72: Ensure spelling is correct
Context: ...he industry experts follow some form of stardards using GIT. You should learn to use it p...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
🪛 markdownlint-cli2 (0.22.0)
[warning] 69-69: Link text should be descriptive
(MD059, descriptive-link-text)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@GUIDE.md` around lines 69 - 72, Fix the typos and make the link text
descriptive: replace "equilavent" with "equivalent", "incorperate" with
"incorporate", and "stardards" with "standards"; also replace the
non‑descriptive link text "here" with a descriptive label like "autolinked
references and URLs" so the Markdown link is MD059-compliant and the sentence
reads clearly (update the sentence containing those words and the link text in
GUIDE.md).
|
@pomegranar are you done updating this PR? |
yes yes done now |
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (2)
GUIDE.md (2)
69-69:⚠️ Potential issue | 🟡 MinorFix non-descriptive link text.
The link text "here" is non-descriptive. Use descriptive text like "autolinked references and URLs" to improve accessibility and comply with MD059.
📝 Proposed fix
- - Again, GitHub has the equivalent features at [here](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls) + - Again, GitHub has the equivalent features for [autolinked references and URLs](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@GUIDE.md` at line 69, Replace the non-descriptive link text "here" in the GUIDE.md line that links to https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls with a descriptive label such as "autolinked references and URLs" (i.e., change the link text from "here" to "autolinked references and URLs") to satisfy MD059 and improve accessibility.
71-71:⚠️ Potential issue | 🟡 MinorAdd hyphen to compound adjective.
"real world" should be hyphenated when used as a compound adjective before a noun.
📝 Proposed fix
-As you incorporate these steps into your developer journey, you will be better equipped for real world team-coding. +As you incorporate these steps into your developer journey, you will be better equipped for real-world team-coding.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@GUIDE.md` at line 71, The phrase "real world" in the sentence "As you incorporate these steps into your developer journey, you will be better equipped for real world team-coding." should be hyphenated as a compound adjective; update that sentence to read "real-world team-coding" (i.e., insert a hyphen between "real" and "world") so the compound adjective is correct.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@GUIDE.md`:
- Line 88: Change the grammar in the sentence "Again, just google these stuff
and learn. Good luck! It will be worth it." by replacing "these stuff" with
"this stuff" (or alternatively "these things") so the uncountable noun "stuff"
uses the correct demonstrative; update the sentence accordingly to read e.g.
"Again, just google this stuff and learn. Good luck! It will be worth it."
---
Duplicate comments:
In `@GUIDE.md`:
- Line 69: Replace the non-descriptive link text "here" in the GUIDE.md line
that links to
https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls
with a descriptive label such as "autolinked references and URLs" (i.e., change
the link text from "here" to "autolinked references and URLs") to satisfy MD059
and improve accessibility.
- Line 71: The phrase "real world" in the sentence "As you incorporate these
steps into your developer journey, you will be better equipped for real world
team-coding." should be hyphenated as a compound adjective; update that sentence
to read "real-world team-coding" (i.e., insert a hyphen between "real" and
"world") so the compound adjective is correct.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
…-devsync Add devsync workflow and shared secrets
Adds the devsync.sh helper for fast remote-agent iteration and a shared-secrets system (chatdku_devs group +
auto-sourced /datapool/secrets/chatdku_env.sh). Docs added in Documentations/DevSync.md and Documentations/Shared-Secrets.md.
Summary by CodeRabbit
New Features
Documentation
Chores / Internal