AGENTS.md - DDMJC Jekyll Site

⚡ SKILLS — LOAD THESE FIRST

Skill 位置 何时加载
ddmjc-talk-post .agents/skills/ddmjc-talk-post/SKILL.md 收到 *_Speaker_Informance.docx(投递至 for_administrators/speaker_info/)、要创建新一期报告 post、或需要完结上一篇报告时

ddmjc-talk-post:三阶段全自动流水线(① docx 解析 → ② 生成 post → ③ 完结上一篇), 纯 stdlib 脚本,绝不自动 git commit/push。处理报告人信息 docx 时必须先读该 SKILL.md。

Guidelines for AI agents working on the DDMJC (Diffusion Decision Model Journal Club) Jekyll website.

Project Overview

This is a Jekyll static site deployed on GitHub Pages for the DDMJC academic journal club. It hosts:

Build Commands

Local Development (if Jekyll installed)

# Install dependencies
bundle install

# Build site
bundle exec jekyll build

# Serve locally with live reload
bundle exec jekyll serve --livereload

# Build for production
bundle exec jekyll build --environment=production

GitHub Pages Deployment

Verify Build

# Check _site folder after build
ls -la _site/

# Validate HTML (optional)
htmlproofer _site/ --disable-external

Code Style Guidelines

File Organization

_posts/           # Jekyll posts (YYYY-MM-DD-slug.md)
_layouts/         # HTML layouts (default.html, post.html)
_includes/        # Reusable HTML snippets
assets/           # Static assets (images, css, js)
templates/        # Post templates for content creation
Private & Shared/ # Notion backup (excluded from build)

Frontmatter Standards

Schedule Post Template

---
title: "完整报告标题"
short_title: "简短标题(20字以内)"
speaker: "报告人姓名"
institution: "报告人单位"
host: "主持人姓名"
date: "YYYY-MM-DD"
time: "20:00-21:00"
timezone: "北京时间 [GMT+8]"
zoom_id: "123 4567 8901"
language: "中文"  # 中文 / English
tags:
  - "DDM"
  - "tutorial"
recording: true  # true = 已有录屏,false = 暂无
status: done    # plan / in-progress / done
speaker_image: "/assets/images/speakers/YYYY-MM-DD_name.png"
links:
  paper: "https://doi.org/..."
  bilibili: "https://bilibili.com/..."
---

Post Content Conventions

Default Values

When creating or updating posts, use these defaults unless the user specifies otherwise:

Field Default Value Notes
zoom_id "863 0404 9478" 默认 Zoom 会议号
time "20:00-21:00" 默认报告时间

Title Convention

Example:

---
title: "Simulation-Based Evidence Accumulation Modeling: The eam Package"
---
# 面向单响应与多响应任务的基于模拟的证据积累建模:eam 包

Naming Conventions

Liquid Template Guidelines

DO’s

<!-- Use relative_url for links -->
<a href="/schedule/">日程</a>

<!-- Use for + if pattern (where_exp has limitations) -->

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  


<!-- Access frontmatter variables -->
AGENTS.md - DDMJC Jekyll Site

DON’Ts

<!-- DON'T use complex where_exp conditions (Jekyll 3.10 limitation) -->


<!-- DON'T use recursive glob patterns in exclude -->
exclude:
  - "*.md"  # This excludes ALL .md files recursively!

Jekyll Configuration Rules

Exclude Patterns (CRITICAL)

# CORRECT
exclude:
  - templates/
  - "/README.md"
  - "/task_plan.md"

# WRONG - excludes _posts/*.md too!
exclude:
  - "*.md"

Error Handling

Common Issues & Solutions

  1. Posts not showing: Check limit_posts in _config.yml (default: 100)
  2. EntryFilter excluded: Check exclude patterns in _config.yml
  3. Liquid syntax error: Don’t use complex where_exp with or conditions
  4. Image not loading: Use leading slash /assets/images/...

Content Migration Guidelines

When migrating from Notion (Private & Shared/DDM Club/):

  1. Schedule entries → _posts/ (already done: 24 posts)
  2. Papers → _posts/ with category: paper (67 files pending)
  3. Discussions → _posts/ with category: discussion (26 files pending)

Migration Checklist

Post Lifecycle & Management

Status Workflow

Posts follow a three-stage lifecycle:

plan → in-progress → done
Status Meaning When to Use
plan 计划中 新报告刚确定日期,但 speaker/host/Zoom 等详情尚未确认。可全部填 TBD
in-progress 进行中 详情已确认(speaker/host/Zoom),等待报告日期到来
done 已完成 报告已结束。更新录屏链接、bilibili 链接,recording: true

Creating a New Post

From speaker info document(推荐):

优先使用 ddmjc-talk-post skill(.agents/skills/ddmjc-talk-post/SKILL.md)自动完成本节全部流程;以下字段映射为其依据。

当报告人提交了 *_Speaker_Informance.md(或 .docx)格式的信息文件时,从中提取以下字段:

信息来源 对应 Frontmatter 对应正文区域
Speaker’s name & affiliation speaker, institution 分享嘉宾(bio 作为简介)
Title title, short_title 报告标题
Abstract — 报告简介
Date/time & length date, time 报告时间
Language language 报告语言
Reference (APA) links.paper 参考文献
Record/Open/Share slides recording 其他(录屏/幻灯片)
Profile photo speaker_image 复制到 /assets/images/speakers/

从空模板创建: 当仅有日期和主题,尚无详情时,使用 templates/schedule-entry-template.md 创建,关键字段填 TBD,status: plan。

Accepted Input Materials

AI agent can accept the following types of materials to create or update posts:

  1. *_Speaker_Informance.md / *_Speaker_Informance.docx — 结构化报告人信息文件,包含所有必要字段。.docx 版投递至 for_administrators/speaker_info/,必须走 ddmjc-talk-post skill 三阶段流水线(见顶部 SKILLS 节:解析 → 生成 post → 完结上一篇)
  2. 图片文件 (.png, .jpeg) — 报告人照片,复制到 /assets/images/speakers/YYYY-MM-DD_initials.png
  3. 口头/文字描述 — 用户直接提供日期、主题、speaker 等关键信息
  4. PDF/论文链接 — 补充 links.paper 和参考文献

Updating an Existing Post

When new information arrives for an existing plan or in-progress post:

  1. 补充 TBD 字段:更新 speaker/host/Zoom ID/time 等
  2. 升级状态:plan → in-progress(详情确认后),in-progress → done(报告结束后)
  3. 添加链接:报告结束后补充 links.bilibili / links.slides
  4. 更新 recording:报告结束后设为 true
  5. 更新 speaker_image:收到照片后复制到 assets 并更新路径

Batch Status Update Pattern

When updating multiple historical posts to done:

Quick Reference: Create vs Update

场景 操作
新报告,有完整 speaker info 文件 write_to_file 创建新 post,status: in-progress
新报告,只知道日期/主题 write_to_file 创建新 post,status: plan,其余填 TBD
已有 plan post,收到了 speaker info 更新现有 post 的 TBD 字段,状态改为 in-progress
报告已结束 更新现有 post,补充录屏链接,状态改为 done

Committee Member Management

组委会成员数据存储在 _config.yml 的 team 数组中,渲染在 index.html 首页。

Data Structure

team:
  - name: "成员姓名"
    institution: "机构名称 (学位/身份)"
    role: "组织者"  # 组织者 / 指导老师
字段 说明
name 成员中文姓名
institution 当前所属机构及身份,格式为 "机构名 (学位)",如 "南京师范大学 (博士研究生)"、"中国科学院心理研究所 (博士)"
role "组织者"(日常运营成员)或 "指导老师"(导师/顾问)

Adding a New Member

当用户提供新成员信息时:

  1. 确定 role:
    • 在读研究生(硕士/博士)→ "组织者"
    • 已获博士学位、在职研究人员 → 询问用户意向,默认为 "组织者"
    • 明确标注为”指导老师”的导师 → "指导老师"
  2. 格式化 institution:从用户描述中提取当前机构和最高学位,如 "中科院心理所" → "中国科学院心理研究所 (博士)"
  3. 插入位置:新 "组织者" 插入在现有组织者列表末尾、指导老师之前;新 "指导老师" 插入在指导老师列表末尾
  4. 修改文件(共 3 个文件,必须全部同步):

    文件 内容 说明
    _config.yml team 数组 网站数据源
    README.md Organizing Committee 表格 英文 README,使用英文名和英文机构名
    README_CH.md 组委会成员 表格 中文 README,使用中文名和中文机构名
  5. 注意:README_zh.md 是旧版 README,不含组委会名单,无需更新

Updating an Existing Member

当成员的机构或角色发生变化时:

Display

成员通过 index.html 中的 Liquid 模板渲染:


<div class="team-card">
  <div class="team-avatar">潘</div>
  <div class="team-info">
    <h4>潘晚坷</h4>
    <p>南京师范大学 (博士研究生)</p>
    <span class="team-role">组织者</span>
  </div>
</div>

<div class="team-card">
  <div class="team-avatar">温</div>
  <div class="team-info">
    <h4>温秀娟</h4>
    <p>华南师范大学 (博士研究生)</p>
    <span class="team-role">组织者</span>
  </div>
</div>

<div class="team-card">
  <div class="team-avatar">曾</div>
  <div class="team-info">
    <h4>曾笑雨</h4>
    <p>北京师范大学 (博士研究生)</p>
    <span class="team-role">组织者</span>
  </div>
</div>

<div class="team-card">
  <div class="team-avatar">郭</div>
  <div class="team-info">
    <h4>郭鸣谦</h4>
    <p>拉德堡德大学 (博士研究生)</p>
    <span class="team-role">组织者</span>
  </div>
</div>

<div class="team-card">
  <div class="team-avatar">刘</div>
  <div class="team-info">
    <h4>刘逸康</h4>
    <p>南京师范大学 (硕士研究生)</p>
    <span class="team-role">组织者</span>
  </div>
</div>

<div class="team-card">
  <div class="team-avatar">沈</div>
  <div class="team-info">
    <h4>沈波</h4>
    <p>中国科学院心理研究所 (博士)</p>
    <span class="team-role">组织者</span>
  </div>
</div>

<div class="team-card">
  <div class="team-avatar">耿</div>
  <div class="team-info">
    <h4>耿海洋</h4>
    <p>天桥脑科学研究院 (博士)</p>
    <span class="team-role">指导老师</span>
  </div>
</div>

<div class="team-card">
  <div class="team-avatar">胡</div>
  <div class="team-info">
    <h4>胡啸</h4>
    <p>北京师范大学 (博士)</p>
    <span class="team-role">指导老师</span>
  </div>
</div>

<div class="team-card">
  <div class="team-avatar">胡</div>
  <div class="team-info">
    <h4>胡传鹏</h4>
    <p>南京师范大学 (博士)</p>
    <span class="team-role">指导老师</span>
  </div>
</div>

<div class="team-card">
  <div class="team-avatar">聂</div>
  <div class="team-info">
    <h4>聂其阳</h4>
    <p>澳门大学 (博士)</p>
    <span class="team-role">指导老师</span>
  </div>
</div>

Testing

Pre-deployment Checklist

  1. Verify _config.yml syntax is valid YAML
  2. Check no "*.md" patterns in exclude
  3. Confirm all post filenames match YYYY-MM-DD-*.md
  4. Verify frontmatter in all posts
  5. Build passes in GitHub Actions

Post-deployment Verification

  1. Check https://ddmjournalclub.github.io/ loads
  2. Verify schedule page shows posts
  3. Test navigation links
  4. Check images load correctly

Key Technical Constraints

References

proj-tracker(ARA trace 维护)