Publications Data and Repository Cleanup Implementation Plan
Publications Data and Repository Cleanup Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Add the five missing papers, make publications editable from one YAML file, and remove verified Academic Pages demo content while preserving the current site design and URLs.
Architecture: _data/publications.yml becomes the publication source of truth. A single Liquid include renders the ordered publications and preprints lists on both the homepage and /publications/; Ruby/Minitest checks validate the data and generated pages. Cleanup removes only the exact demo files approved in the design spec.
Tech Stack: Jekyll 3.10.0, Liquid, YAML, Ruby 3.4.7, Minitest, Git/GitHub Pages.
Global Constraints
- Work only in
/Users/bkumar4/work/professional/website/bhuvesh-publications-cleanupon branchcodex/publications-cleanup. - Preserve the current visual design, navigation, homepage,
/cv/,/publications/,/sitemap/, custom domain, and legitimate publication links. - Keep accepted and published papers under
Publications; keep unpublished or under-submission work underPreprint(s). - Omit links when no verified public URL exists; the Training-Free paper must not link to
https://arxiv.org/abs/2410.16458. - Preserve Bhuvesh-specific PDFs and images even when they are currently unlinked.
- Do not modify
/Users/bkumar4/work/professional/website/bhuvesh.github.ioor/Users/bkumar4/work/professional/website/website. - Use the existing Homebrew Ruby without installing or changing environments:
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin". - Do not push
master. Push onlycodex/publications-cleanupand open a PR targetingmasterafter local review. - Do not add a production
/testingpath. Use a local browser preview; a public preview host is a separate, optional follow-up.
Task 1: Publication Data Contract and Content
Files:
- Create:
test/publications_data_test.rb - Create:
_data/publications.yml
Interfaces:
- Consumes: the publication metadata and grouping in the approved design spec.
Produces:
site.data.publications.publicationsandsite.data.publications.preprints, each an ordered array of records withtitle,authors,venue, optionalnote, optionalhighlight, and optionallinks.- Step 1: Write the failing data-contract test
Create test/publications_data_test.rb:
require "minitest/autorun"
require "uri"
require "yaml"
class PublicationsDataTest < Minitest::Test
ROOT = File.expand_path("..", __dir__)
DATA_PATH = File.join(ROOT, "_data", "publications.yml")
SECTIONS = %w[publications preprints].freeze
REQUIRED_FIELDS = %w[title authors venue].freeze
INCORRECT_TRAINING_FREE_URL = "https://arxiv.org/abs/2410.16458"
def data
return {} unless File.file?(DATA_PATH)
YAML.safe_load_file(DATA_PATH, aliases: true) || {}
end
def records
SECTIONS.flat_map { |section| Array(data[section]) }
end
def test_data_file_exists
assert File.file?(DATA_PATH), "expected #{DATA_PATH} to exist"
end
def test_expected_sections_are_arrays
SECTIONS.each do |section|
assert_kind_of Array, data[section], "#{section} must be an array"
end
end
def test_every_record_has_required_text_fields
records.each do |record|
REQUIRED_FIELDS.each do |field|
value = record[field]
assert_kind_of String, value, "#{field} must be text in #{record.inspect}"
refute_empty value.strip, "#{field} must not be blank in #{record.inspect}"
end
end
end
def test_titles_are_unique_across_sections
titles = records.map { |record| record["title"] }
assert_equal titles.uniq, titles
end
def test_links_have_labels_and_safe_urls
records.each do |record|
Array(record["links"]).each do |link|
refute_empty link.fetch("label").strip
url = link.fetch("url")
refute_empty url.strip
next if url.start_with?("/")
uri = URI.parse(url)
assert_includes %w[http https], uri.scheme, "unsafe URL #{url.inspect}"
end
end
end
def test_training_free_paper_does_not_use_incorrect_arxiv_url
urls = records.flat_map { |record| Array(record["links"]) }
.map { |link| link["url"] }
refute_includes urls, INCORRECT_TRAINING_FREE_URL
end
end
- Step 2: Run the test and verify the expected failure
Run:
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" ruby test/publications_data_test.rb
Expected: FAIL because _data/publications.yml does not exist and the required sections are absent.
- Step 3: Create the publication YAML
Create _data/publications.yml with this shape and content, using YAML block scalars for long author lists:
publications:
- title: "Semantic IDs for Recommender Systems at Snapchat: Use Cases, Technical Challenges, and Design Choices"
authors: >-
Clark Mingxuan Ju, Tong Zhao, Leonardo Neves, Liam Collins, Bhuvesh Kumar,
Jiwen Ren, Lili Zhang, Wenfeng Zhuo, Vincent Zhang, Xiao Bai, Jinchao Li,
Karthik Iyer, Zihao Fan, Yilun Xu, Yiwen Chen, Peicheng Yu, Manish Malik,
Neil Shah
venue: "SIGIR 2026 Industry Papers Track"
links:
- label: "paper"
url: "https://dl.acm.org/doi/10.1145/3805712.3808405"
- label: "arXiv"
url: "https://arxiv.org/abs/2604.03949"
- title: "Exploiting ID-Text Complementarity via Ensembling for Sequential Recommendation"
authors: "Liam Collins, Bhuvesh Kumar, Clark Mingxuan Ju, Tong Zhao, Donald Loveland, Leonardo Neves, Neil Shah"
venue: "RecSys 2026"
note: "Accepted"
links:
- label: "arXiv"
url: "https://arxiv.org/abs/2512.17820"
- title: "CoSearch: Joint Training of Reasoning and Document Ranking via Reinforcement Learning for Agentic Search"
authors: "Hansi Zeng, Liam Collins, Bhuvesh Kumar, Neil Shah, Hamed Zamani"
venue: "COLM 2026"
note: "Accepted"
links:
- label: "arXiv"
url: "https://arxiv.org/abs/2604.17555"
- title: "Training-Free LLM-Based Recommendation with Post-LLM Item Refinement Using Collaborative Signals"
authors: "Kyungho Kim, Sunwoo Kim, Geon Lee, Shinhwan Kang, Sojeong Kim, Liam Collins, Bhuvesh Kumar, Donald Loveland, Kijung Shin"
venue: "CIKM'26 Short Paper"
- title: "Sequential Data Augmentation for Generative Recommendation"
authors: "G. Lee, B. Kumar, C. M. Ju, T. Zhao, K. Shin, N. Shah, L. Collins"
venue: "WSDM 2026"
links:
- label: "pdf"
url: "https://arxiv.org/pdf/2509.13648"
- title: "Learning Universal User Representations Leveraging Cross-Domain User Intent at Snapchat"
authors: "C. M. Ju, L. Neves, B. Kumar, L. Collins, T. Zhao, Y. Qiu, Q. Dou, et al."
venue: "SIGIR 2025"
links:
- label: "pdf"
url: "https://arxiv.org/pdf/2504.21838"
- title: "Generative Recommendation with Semantic IDs: A Practitioner's Handbook"
authors: "C. M. Ju, L. Collins, L. Neves, B. Kumar, Y. Y. Wang, T. Zhao, N. Shah"
venue: "CIKM 2025"
note: "Best Paper Award in Resource Papers"
highlight: true
links:
- label: "pdf"
url: "https://arxiv.org/pdf/2507.22224"
- label: "Library"
url: "https://github.com/snap-research/GRID"
- title: "Private Mechanism Design via Quantile Estimation"
authors: "Y. Yang, T. Xiao, B. Kumar, J. Morgenstern"
venue: "ICLR 2025"
links:
- label: "pdf"
url: "https://openreview.net/pdf?id=JQQDePbfxh"
- label: "poster"
url: "https://iclr.cc/media/PosterPDFs/ICLR%202025/30113.png?t=1744877049.8500702"
- title: "Revisiting self-attention for cross-domain sequential recommendation"
authors: "C. M. Ju, L. Neves, B. Kumar, L. Collins, T. Zhao, Y. Qiu, Q. Dou, S. Nizam, S. Yang, N. Shah"
venue: "KDD 2025"
links:
- label: "pdf"
url: "https://arxiv.org/pdf/2505.21811"
- title: "Accelerated Federated Optimization with Quantization"
authors: "Y. Youn, B. Kumar, J. Abernethy"
venue: "IEEE Data Engineering Bulletin 2023"
links:
- label: "pdf"
url: "http://sites.computer.org/debull/A23mar/p79.pdf"
- title: "ActiveHedge: Hedge meets Active Learning"
authors: "B. Kumar, J. Abernethy, V. Saligrama"
venue: "ICML 2022"
note: "Spotlight"
links:
- label: "pdf"
url: "https://proceedings.mlr.press/v162/kumar22a/kumar22a.pdf"
- label: "poster"
url: "/files/papers/activehedge/activehedge_poster.pdf"
- label: "talk"
url: "https://icml.cc/virtual/2022/spotlight/16966"
- title: "Observation Free Attacks on Stochastic Bandits"
authors: "Y. Xu, B. Kumar, J. Abernethy"
venue: "NeurIPS 2021"
links:
- label: "pdf"
url: "https://proceedings.neurips.cc/paper_files/paper/2021/file/be315e7f05e9f13629031915fe87ad44-Paper.pdf"
- title: "Bridging Truthfulness and Corruption-robustness in Multi-Armed Bandit Mechanisms"
authors: "Y. Xu, B. Kumar, J. Abernethy, T. Lykouris"
venue: "Incentives in ML Workshop at ICML 2020"
links:
- label: "pdf"
url: "/files/papers/bridging_truthful/bridging_truthful.pdf"
- label: "talk"
url: "https://youtu.be/-ynxeiOuqoE"
- title: "Learning Auctions with Robust Incentive Guarantees"
authors: "B. Kumar, J. Abernethy, R. Cummings, J. Morgenstern, S. Taggart"
venue: "NeurIPS 2019"
links:
- label: "pdf"
url: "https://proceedings.neurips.cc/paper/2019/file/c14a2a57ead18f3532a5a8949382c536-Paper.pdf"
- label: "poster"
url: "/files/papers/learning_auctions/learning_auctions_poster.pdf"
preprints:
- title: "LLM-Based Generative Retrieval for Snapchat Content Recommendation"
authors: >-
Liam Collins, Jiwen Ren, Donald Loveland, Bhuvesh Kumar, Clark Mingxuan Ju,
Xuan Guo, Mo Li, Alvin Hou, Yi Cui, Peng Yang, Jian Wang, Saud Afzal Shafi,
Nga Than, Ruiming Lu, Wenfeng Zhuo, Dongheng Li, Lili Zhang, Mingtao Zhang,
Jinchao Ye, Vincent Xue, Chunhui Zhu, Neil Shah
venue: "KDD submission"
note: "Preprint posted July 30, 2026"
links:
- label: "arXiv"
url: "https://arxiv.org/abs/2607.28895"
- title: "Optimal spend rate estimation and pacing for ad campaigns with budgets"
authors: "B. Kumar, J. Morgenstern, O. Schrijvers"
venue: "arXiv (2022)"
links:
- label: "pdf"
url: "https://arxiv.org/pdf/2202.05881"
- label: "talk"
url: "https://youtu.be/xcPPtnLxDCs"
- Step 4: Run the contract test and verify it passes
Run the Step 2 command.
Expected: 6 runs, 0 failures, 0 errors.
- Step 5: Commit the data contract and content
git add test/publications_data_test.rb _data/publications.yml
git commit -m "feat: add structured publication data"
Task 2: Shared Publication Renderer
Files:
- Create:
_includes/publications-list.html - Delete:
_includes/publications-list.md - Modify:
_pages/about.md - Modify:
_pages/publications.html - Create:
test/rendered_site_test.rb
Interfaces:
- Consumes:
site.data.publications.publicationsandsite.data.publications.preprintsfrom Task 1. Produces: identical publication-list HTML on
/index.htmland/publications/index.html, with no anchor for records whoselinksfield is absent.- Step 1: Write the failing rendered-site test
Create test/rendered_site_test.rb:
require "cgi"
require "minitest/autorun"
require "yaml"
class RenderedSiteTest < Minitest::Test
ROOT = File.expand_path("..", __dir__)
SITE_DIR = ENV.fetch("SITE_DIR", File.join(ROOT, "_site"))
DATA = YAML.safe_load_file(File.join(ROOT, "_data", "publications.yml"))
PAGES = %w[index.html publications/index.html].freeze
REQUIRED_ROUTES = %w[index.html cv/index.html publications/index.html sitemap/index.html].freeze
DEMO_TITLES = ["Paper Title Number 1", "Paper Title Number 2", "Paper Title Number 3"].freeze
def normalize(text)
CGI.unescapeHTML(text)
.gsub(/<[^>]+>/, " ")
.tr("’‘", "''")
.gsub(/\s+/, " ")
.strip
end
def page(relative_path)
File.read(File.join(SITE_DIR, relative_path))
end
def records
%w[publications preprints].flat_map { |section| DATA.fetch(section) }
end
def test_required_routes_are_generated
REQUIRED_ROUTES.each do |route|
assert File.file?(File.join(SITE_DIR, route)), "missing #{route}"
end
end
def test_every_publication_is_on_home_and_publications_pages
PAGES.each do |relative_path|
rendered = normalize(page(relative_path))
records.each { |record| assert_includes rendered, normalize(record.fetch("title")) }
end
end
def test_demo_publications_are_absent
PAGES.each do |relative_path|
rendered = normalize(page(relative_path))
DEMO_TITLES.each { |title| refute_includes rendered, title }
end
end
def test_training_free_paper_has_no_link
html = page("publications/index.html")
title = "Training-Free LLM-Based Recommendation with Post-LLM Item Refinement Using Collaborative Signals"
escaped_title = CGI.escapeHTML(title)
assert_match(/<li>.*?#{Regexp.escape(escaped_title)}.*?<\/li>/m, html)
item = html.match(/<li>.*?#{Regexp.escape(escaped_title)}.*?<\/li>/m).to_s
refute_match(/<a\b/, item)
end
end
- Step 2: Build the current templates and verify the rendered-site test fails
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" JEKYLL_ENV=production bundle exec jekyll build
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" SITE_DIR="_site" ruby test/rendered_site_test.rb
Expected: FAIL because the five new titles are not rendered from YAML.
- Step 3: Implement the Liquid renderer
Create _includes/publications-list.html:
<h2>Publications</h2>
<ul>
<li>
<p>
Semantic IDs for Recommender Systems at Snapchat: Use Cases, Technical Challenges, and Design Choices<br>
C. M. Ju, T. Zhao, L. Neves, L. Collins, B. Kumar, J. Ren, L. Zhang, W. Zhuo, V. Zhang, X. Bai, J. Li, K. Iyer, Z. Fan, Y. Xu, Y. Chen, P. Yu, M. Malik, N. Shah<br>
<strong>SIGIR 2026</strong>
<br>
<a href="https://dl.acm.org/doi/10.1145/3805712.3808405">[paper]</a>, <a href="https://arxiv.org/abs/2604.03949">[arXiv]</a>
</p>
</li>
<li>
<p>
Exploiting ID-Text Complementarity via Ensembling for Sequential Recommendation<br>
L. Collins, B. Kumar, C. M. Ju, T. Zhao, D. Loveland, L. Neves, N. Shah<br>
<strong>RecSys 2026</strong>
<br>
<a href="https://arxiv.org/abs/2512.17820">[arXiv]</a>
</p>
</li>
<li>
<p>
CoSearch: Joint Training of Reasoning and Document Ranking via Reinforcement Learning for Agentic Search<br>
H. Zeng, L. Collins, B. Kumar, N. Shah, H. Zamani<br>
<strong>COLM 2026</strong>
<br>
<a href="https://arxiv.org/abs/2604.17555">[arXiv]</a>
</p>
</li>
<li>
<p>
Training-Free LLM-Based Recommendation with Post-LLM Item Refinement Using Collaborative Signals<br>
K. Kim, S. Kim, G. Lee, S. Kang, S. Kim, L. Collins, B. Kumar, D. Loveland, K. Shin<br>
<strong>CIKM 2026</strong>
</p>
</li>
<li>
<p>
Sequential Data Augmentation for Generative Recommendation<br>
G. Lee, B. Kumar, C. M. Ju, T. Zhao, K. Shin, N. Shah, L. Collins<br>
<strong>WSDM 2026</strong>
<br>
<a href="https://arxiv.org/pdf/2509.13648">[pdf]</a>
</p>
</li>
<li>
<p>
Learning Universal User Representations Leveraging Cross-Domain User Intent at Snapchat<br>
C. M. Ju, L. Neves, B. Kumar, L. Collins, T. Zhao, Y. Qiu, Q. Dou, et al.<br>
<strong>SIGIR 2025</strong>
<br>
<a href="https://arxiv.org/pdf/2504.21838">[pdf]</a>
</p>
</li>
<li>
<p>
Generative Recommendation with Semantic IDs: A Practitioner's Handbook<br>
C. M. Ju, L. Collins, L. Neves, B. Kumar, Y. Y. Wang, T. Zhao, N. Shah<br>
<strong>CIKM 2025</strong>
<span style="color: red"><strong>[Best Paper Award in Resource Papers]</strong></span>
<br>
<a href="https://arxiv.org/pdf/2507.22224">[pdf]</a>, <a href="https://github.com/snap-research/GRID">[Library]</a>
</p>
</li>
<li>
<p>
Private Mechanism Design via Quantile Estimation<br>
Y. Yang, T. Xiao, B. Kumar, J. Morgenstern<br>
<strong>ICLR 2025</strong>
<br>
<a href="https://openreview.net/pdf?id=JQQDePbfxh">[pdf]</a>, <a href="https://iclr.cc/media/PosterPDFs/ICLR%202025/30113.png?t=1744877049.8500702">[poster]</a>
</p>
</li>
<li>
<p>
Revisiting self-attention for cross-domain sequential recommendation<br>
C. M. Ju, L. Neves, B. Kumar, L. Collins, T. Zhao, Y. Qiu, Q. Dou, S. Nizam, S. Yang, N. Shah<br>
<strong>KDD 2025</strong>
<br>
<a href="https://arxiv.org/pdf/2505.21811">[pdf]</a>
</p>
</li>
<li>
<p>
Accelerated Federated Optimization with Quantization<br>
Y. Youn, B. Kumar, J. Abernethy<br>
<strong>IEEE Data Engineering Bulletin 2023</strong>
<br>
<a href="http://sites.computer.org/debull/A23mar/p79.pdf">[pdf]</a>
</p>
</li>
<li>
<p>
ActiveHedge: Hedge meets Active Learning<br>
B. Kumar, J. Abernethy, V. Saligrama<br>
<strong>ICML 2022</strong>
(Spotlight)
<br>
<a href="https://proceedings.mlr.press/v162/kumar22a/kumar22a.pdf">[pdf]</a>, <a href="/files/papers/activehedge/activehedge_poster.pdf">[poster]</a>, <a href="https://icml.cc/virtual/2022/spotlight/16966">[talk]</a>
</p>
</li>
<li>
<p>
Observation Free Attacks on Stochastic Bandits<br>
Y. Xu, B. Kumar, J. Abernethy<br>
<strong>NeurIPS 2021</strong>
<br>
<a href="https://proceedings.neurips.cc/paper_files/paper/2021/file/be315e7f05e9f13629031915fe87ad44-Paper.pdf">[pdf]</a>
</p>
</li>
<li>
<p>
Bridging Truthfulness and Corruption-robustness in Multi-Armed Bandit Mechanisms<br>
Y. Xu, B. Kumar, J. Abernethy, T. Lykouris<br>
<strong>Incentives in ML Workshop at ICML 2020</strong>
<br>
<a href="/files/papers/bridging_truthful/bridging_truthful.pdf">[pdf]</a>, <a href="https://youtu.be/-ynxeiOuqoE">[talk]</a>
</p>
</li>
<li>
<p>
Learning Auctions with Robust Incentive Guarantees<br>
B. Kumar, J. Abernethy, R. Cummings, J. Morgenstern, S. Taggart<br>
<strong>NeurIPS 2019</strong>
<br>
<a href="https://proceedings.neurips.cc/paper/2019/file/c14a2a57ead18f3532a5a8949382c536-Paper.pdf">[pdf]</a>, <a href="/files/papers/learning_auctions/learning_auctions_poster.pdf">[poster]</a>
</p>
</li>
</ul>
<h2>Preprint(s)</h2>
<ul>
<li>
<p>
LLM-Based Generative Retrieval for Snapchat Content Recommendation<br>
L. Collins, J. Ren, D. Loveland, B. Kumar, C. M. Ju, X. Guo, M. Li, A. Hou, Y. Cui, P. Yang, J. Wang, S. A. Shafi, N. Than, R. Lu, W. Zhuo, D. Li, L. Zhang, M. Zhang, J. Ye, V. Xue, C. Zhu, N. Shah<br>
<strong></strong>
<br>
<a href="https://arxiv.org/abs/2607.28895">[arXiv]</a>
</p>
</li>
<li>
<p>
Optimal spend rate estimation and pacing for ad campaigns with budgets<br>
B. Kumar, J. Morgenstern, O. Schrijvers<br>
<strong></strong>
<br>
<a href="https://arxiv.org/pdf/2202.05881">[pdf]</a>, <a href="https://youtu.be/xcPPtnLxDCs">[talk]</a>
</p>
</li>
</ul>
Change both _pages/about.md and _pages/publications.html from the capture/markdownify sequence to:
<h2>Publications</h2>
<ul>
<li>
<p>
Semantic IDs for Recommender Systems at Snapchat: Use Cases, Technical Challenges, and Design Choices<br>
<span class="publication-authors">C. M. Ju, T. Zhao, L. Neves, L. Collins, B. Kumar, J. Ren, L. Zhang, W. Zhuo, V. Zhang, X. Bai, J. Li, K. Iyer, Z. Fan, Y. Xu, Y. Chen, P. Yu, M. Malik, N. Shah</span>
<br>
<strong class="publication-venue">SIGIR 2026</strong>
<br>
<a href="https://dl.acm.org/doi/10.1145/3805712.3808405">[paper]</a>, <a href="https://arxiv.org/abs/2604.03949">[arXiv]</a>
</p>
</li>
<li>
<p>
Exploiting ID-Text Complementarity via Ensembling for Sequential Recommendation<br>
<span class="publication-authors">L. Collins, B. Kumar, C. M. Ju, T. Zhao, D. Loveland, L. Neves, N. Shah</span>
<br>
<strong class="publication-venue">RecSys 2026</strong>
<br>
<a href="https://arxiv.org/abs/2512.17820">[arXiv]</a>
</p>
</li>
<li>
<p>
CoSearch: Joint Training of Reasoning and Document Ranking via Reinforcement Learning for Agentic Search<br>
<span class="publication-authors">H. Zeng, L. Collins, B. Kumar, N. Shah, H. Zamani</span>
<br>
<strong class="publication-venue">COLM 2026</strong>
<br>
<a href="https://arxiv.org/abs/2604.17555">[arXiv]</a>
</p>
</li>
<li>
<p>
Training-Free LLM-Based Recommendation with Post-LLM Item Refinement Using Collaborative Signals<br>
<span class="publication-authors">K. Kim, S. Kim, G. Lee, S. Kang, S. Kim, L. Collins, B. Kumar, D. Loveland, K. Shin</span>
<br>
<strong class="publication-venue">CIKM 2026</strong>
</p>
</li>
<li>
<p>
Sequential Data Augmentation for Generative Recommendation<br>
<span class="publication-authors">G. Lee, B. Kumar, C. M. Ju, T. Zhao, K. Shin, N. Shah, L. Collins</span>
<br>
<strong class="publication-venue">WSDM 2026</strong>
<br>
<a href="https://arxiv.org/pdf/2509.13648">[pdf]</a>
</p>
</li>
<li>
<p>
Learning Universal User Representations Leveraging Cross-Domain User Intent at Snapchat<br>
<span class="publication-authors">C. M. Ju, L. Neves, B. Kumar, L. Collins, T. Zhao, Y. Qiu, Q. Dou, et al.</span>
<br>
<strong class="publication-venue">SIGIR 2025</strong>
<br>
<a href="https://arxiv.org/pdf/2504.21838">[pdf]</a>
</p>
</li>
<li>
<p>
Generative Recommendation with Semantic IDs: A Practitioner's Handbook<br>
<span class="publication-authors">C. M. Ju, L. Collins, L. Neves, B. Kumar, Y. Y. Wang, T. Zhao, N. Shah</span>
<br>
<strong class="publication-venue">CIKM 2025</strong>
<span style="color: red"><strong>[Best Paper Award in Resource Papers]</strong></span>
<br>
<a href="https://arxiv.org/pdf/2507.22224">[pdf]</a>, <a href="https://github.com/snap-research/GRID">[Library]</a>
</p>
</li>
<li>
<p>
Private Mechanism Design via Quantile Estimation<br>
<span class="publication-authors">Y. Yang, T. Xiao, B. Kumar, J. Morgenstern</span>
<br>
<strong class="publication-venue">ICLR 2025</strong>
<br>
<a href="https://openreview.net/pdf?id=JQQDePbfxh">[pdf]</a>, <a href="https://iclr.cc/media/PosterPDFs/ICLR%202025/30113.png?t=1744877049.8500702">[poster]</a>
</p>
</li>
<li>
<p>
Revisiting self-attention for cross-domain sequential recommendation<br>
<span class="publication-authors">C. M. Ju, L. Neves, B. Kumar, L. Collins, T. Zhao, Y. Qiu, Q. Dou, S. Nizam, S. Yang, N. Shah</span>
<br>
<strong class="publication-venue">KDD 2025</strong>
<br>
<a href="https://arxiv.org/pdf/2505.21811">[pdf]</a>
</p>
</li>
<li>
<p>
Accelerated Federated Optimization with Quantization<br>
<span class="publication-authors">Y. Youn, B. Kumar, J. Abernethy</span>
<br>
<strong class="publication-venue">IEEE Data Engineering Bulletin 2023</strong>
<br>
<a href="http://sites.computer.org/debull/A23mar/p79.pdf">[pdf]</a>
</p>
</li>
<li>
<p>
ActiveHedge: Hedge meets Active Learning<br>
<span class="publication-authors">B. Kumar, J. Abernethy, V. Saligrama</span>
<br>
<strong class="publication-venue">ICML 2022</strong>
(Spotlight)
<br>
<a href="https://proceedings.mlr.press/v162/kumar22a/kumar22a.pdf">[pdf]</a>, <a href="/files/papers/activehedge/activehedge_poster.pdf">[poster]</a>, <a href="https://icml.cc/virtual/2022/spotlight/16966">[talk]</a>
</p>
</li>
<li>
<p>
Observation Free Attacks on Stochastic Bandits<br>
<span class="publication-authors">Y. Xu, B. Kumar, J. Abernethy</span>
<br>
<strong class="publication-venue">NeurIPS 2021</strong>
<br>
<a href="https://proceedings.neurips.cc/paper_files/paper/2021/file/be315e7f05e9f13629031915fe87ad44-Paper.pdf">[pdf]</a>
</p>
</li>
<li>
<p>
Bridging Truthfulness and Corruption-robustness in Multi-Armed Bandit Mechanisms<br>
<span class="publication-authors">Y. Xu, B. Kumar, J. Abernethy, T. Lykouris</span>
<br>
<strong class="publication-venue">Incentives in ML Workshop at ICML 2020</strong>
<br>
<a href="/files/papers/bridging_truthful/bridging_truthful.pdf">[pdf]</a>, <a href="https://youtu.be/-ynxeiOuqoE">[talk]</a>
</p>
</li>
<li>
<p>
Learning Auctions with Robust Incentive Guarantees<br>
<span class="publication-authors">B. Kumar, J. Abernethy, R. Cummings, J. Morgenstern, S. Taggart</span>
<br>
<strong class="publication-venue">NeurIPS 2019</strong>
<br>
<a href="https://proceedings.neurips.cc/paper/2019/file/c14a2a57ead18f3532a5a8949382c536-Paper.pdf">[pdf]</a>, <a href="/files/papers/learning_auctions/learning_auctions_poster.pdf">[poster]</a>
</p>
</li>
</ul>
<h2>Preprint(s)</h2>
<ul>
<li>
<p>
LLM-Based Generative Retrieval for Snapchat Content Recommendation<br>
<span class="publication-authors">L. Collins, J. Ren, D. Loveland, B. Kumar, C. M. Ju, X. Guo, M. Li, A. Hou, Y. Cui, P. Yang, J. Wang, S. A. Shafi, N. Than, R. Lu, W. Zhuo, D. Li, L. Zhang, M. Zhang, J. Ye, V. Xue, C. Zhu, N. Shah</span>
<br>
<a href="https://arxiv.org/abs/2607.28895">[arXiv]</a>
</p>
</li>
<li>
<p>
Optimal spend rate estimation and pacing for ad campaigns with budgets<br>
<span class="publication-authors">B. Kumar, J. Morgenstern, O. Schrijvers</span>
<br>
<a href="https://arxiv.org/pdf/2202.05881">[pdf]</a>, <a href="https://youtu.be/xcPPtnLxDCs">[talk]</a>
</p>
</li>
</ul>
Delete _includes/publications-list.md.
- Step 4: Rebuild and run both test files
Run the Step 2 commands, followed by:
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" ruby test/publications_data_test.rb
Expected: all tests pass.
- Step 5: Commit the renderer
git add _includes/publications-list.html _includes/publications-list.md _pages/about.md _pages/publications.html test/rendered_site_test.rb
git commit -m "feat: render publications from YAML"
Task 3: Remove Verified Demo Content
Files:
- Delete: exact files and directories listed in the approved design’s
Conservative Cleanupsection. - Modify:
_config.yml - Modify:
_data/navigation.yml - Create:
test/repository_cleanup_test.rb
Interfaces:
- Consumes: the five-page public surface (
404, homepage, CV, Publications, sitemap) and theme dependencies. Produces: the same required routes without demo collections, demo pages, sample content, JSON-CV code, generators, comments, or sample assets.
- Step 1: Write and run the failing cleanup test
Create test/repository_cleanup_test.rb:
require "minitest/autorun"
require "yaml"
class RepositoryCleanupTest < Minitest::Test
ROOT = File.expand_path("..", __dir__)
REMOVED_PATHS = %w[
_publications _posts _talks _teaching _portfolio _drafts _data/comments
markdown_generator talkmap talkmap.ipynb talkmap_out.ipynb talkmap.py
_pages/archive-layout-with-content.md _pages/category-archive.html
_pages/collection-archive.html _pages/cv-json.md _pages/markdown.md
_pages/non-menu-page.md _pages/page-archive.html _pages/portfolio.html
_pages/tag-archive.html _pages/talkmap.html _pages/talks.html
_pages/teaching.html _pages/terms.md _pages/year-archive.html
_data/cv.json _includes/cv-template.html _layouts/cv-layout.html
scripts/cv_markdown_to_json.py scripts/update_cv_json.sh
.github/workflows/scrape_talks.yml
files/paper1.pdf files/paper2.pdf files/paper3.pdf
files/slides1.pdf files/slides2.pdf files/slides3.pdf files/bibtex1.bib
images/500x300.png images/bio-photo-2.jpg images/bio-photo.jpg
images/editing-talk.png images/profile.png images/themes
.DS_Store files/.DS_Store files/papers/.DS_Store pdf/.DS_Store
].freeze
def test_demo_paths_are_removed
remaining = REMOVED_PATHS.select { |path| File.exist?(File.join(ROOT, path)) }
assert_empty remaining, "demo paths remain: #{remaining.join(', ')}"
end
def test_only_page_defaults_remain
config = YAML.safe_load_file(File.join(ROOT, "_config.yml"), aliases: true)
assert_nil config["collections"]
assert_nil config["comments"]
assert_nil config["staticman"]
assert_nil config["category_archive"]
assert_nil config["tag_archive"]
assert_equal ["pages"], config.fetch("defaults").map { |entry| entry.dig("scope", "type") }
assert_equal %w[jekyll-feed jekyll-sitemap jekyll-redirect-from jemoji], config.fetch("plugins")
end
def test_navigation_contains_only_cv_and_publications
navigation = YAML.safe_load_file(File.join(ROOT, "_data", "navigation.yml"))
assert_equal [
{"title" => "CV", "url" => "/cv/"},
{"title" => "Publications", "url" => "/publications/"}
], navigation.fetch("main")
end
end
Run the existing Task 2 tests first to capture the passing pre-cleanup baseline. Then run:
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" ruby test/repository_cleanup_test.rb
Expected: FAIL because the exact demo paths and unused configuration still exist.
- Step 2: Remove exact tracked demo targets
Run these exact commands:
git rm -r _publications _posts _talks _teaching _portfolio _drafts _data/comments
git rm -r markdown_generator talkmap images/themes
git rm talkmap.ipynb talkmap_out.ipynb talkmap.py
git rm _pages/archive-layout-with-content.md _pages/category-archive.html _pages/collection-archive.html _pages/cv-json.md _pages/markdown.md _pages/non-menu-page.md _pages/page-archive.html _pages/portfolio.html _pages/tag-archive.html _pages/talkmap.html _pages/talks.html _pages/teaching.html _pages/terms.md _pages/year-archive.html
git rm _data/cv.json _includes/cv-template.html _layouts/cv-layout.html scripts/cv_markdown_to_json.py scripts/update_cv_json.sh
git rm .github/workflows/scrape_talks.yml
git rm files/paper1.pdf files/paper2.pdf files/paper3.pdf files/slides1.pdf files/slides2.pdf files/slides3.pdf files/bibtex1.bib
git rm images/500x300.png images/bio-photo-2.jpg images/bio-photo.jpg images/editing-talk.png images/profile.png
git rm .DS_Store files/.DS_Store files/papers/.DS_Store pdf/.DS_Store
Do not delete files/papers, files/resume, pdf contents other than the explicitly listed tracked .DS_Store files, images/portrait.jpg, or any favicon/manifest files.
- Step 3: Simplify configuration and navigation
In _config.yml:
- Remove
publication_category,talkmap_link,comments, andstaticmanconfiguration. - Remove the entire
collectionsmapping. - Keep only the
pagesentry indefaults. - Remove category/tag archive configuration.
- Keep
jekyll-feed,jekyll-sitemap,jekyll-redirect-from, andjemojiplugins and whitelist entries. - Remove
jekyll-gistandjekyll-paginatefrom plugins and whitelist because no posts, gists, or pagination remain.
The resulting defaults and plugin blocks must be:
defaults:
- scope:
path: ""
type: pages
values:
layout: single
author_profile: true
plugins:
- jekyll-feed
- jekyll-sitemap
- jekyll-redirect-from
- jemoji
whitelist:
- jekyll-feed
- jekyll-sitemap
- jekyll-redirect-from
- jemoji
In _data/navigation.yml, retain only:
main:
- title: "CV"
url: /cv/
- title: "Publications"
url: /publications/
- Step 4: Rebuild and verify cleanup behavior
Run both Task 2 test files and test/repository_cleanup_test.rb again.
Also run:
git grep -n -E "Paper Title Number|Talk 1 on Relevant Topic|Short description of portfolio item|This is a description of a teaching experience" -- . ':(exclude)docs/**' ':(exclude)test/**'
Expected: both test files pass; git grep returns no matches.
- Step 5: Commit cleanup
git add -A
git commit -m "chore: remove academic pages demo content"
Task 4: Maintenance Documentation and Ignore Rules
Files:
- Modify:
.gitignore - Replace:
README.md
Interfaces:
- Consumes: the YAML schema and exact test/build commands from Tasks 1-3.
Produces: one concise maintenance guide and ignore rules that prevent generated/OS files from returning.
- Step 1: Write a failing documentation check
Add this test to test/publications_data_test.rb:
def test_readme_documents_the_publication_workflow
readme = File.read(File.join(ROOT, "README.md"))
assert_includes readme, "_data/publications.yml"
assert_includes readme, "ruby test/publications_data_test.rb"
assert_includes readme, "bundle exec jekyll build"
end
- Step 2: Run the test and verify the expected failure
Run the Task 1 test command.
Expected: FAIL because the generic template README does not document _data/publications.yml.
- Step 3: Replace README and update ignores
Replace README.md with:
# bhuveshkumar.com
Source for [bhuveshkumar.com](https://bhuveshkumar.com), built with Jekyll and published by GitHub Pages.
## Add or update a publication
Edit `_data/publications.yml`. Items under `publications` appear under **Publications**; items under `preprints` appear under **Preprint(s)**. Their order in the YAML file is their order on the website.
Linked example:
```yaml
- title: "Paper title"
authors: "First Author, Bhuvesh Kumar"
venue: "Conference 2026"
note: "Accepted"
links:
- label: "paper"
url: "https://example.com/paper"
```
Unlinked example:
```yaml
- title: "Paper awaiting a public URL"
authors: "First Author, Bhuvesh Kumar"
venue: "Conference 2026 Short Paper"
```
Omit `links` until a URL has been verified. Use `highlight: true` only for an award note that should retain the red emphasis used on the current site.
## Test and build
This Mac has the required Ruby and Bundler under Homebrew. Prefix commands so they do not use the older system Ruby:
```bash
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" ruby test/publications_data_test.rb
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" JEKYLL_ENV=production bundle exec jekyll build
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" SITE_DIR="_site" ruby test/rendered_site_test.rb
```
## Preview locally
```bash
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" bundle exec jekyll serve --host 127.0.0.1 --port 4000
```
Open [http://127.0.0.1:4000](http://127.0.0.1:4000). GitHub pull requests do not automatically receive a rendered GitHub Pages preview URL; use the local preview before merging.
## Publish through a pull request
1. Create a feature branch from `master`.
2. Make the change and run all three verification commands.
3. Push the feature branch, not `master`.
4. Open a pull request targeting `master`.
5. Merge only after reviewing the local preview and PR diff.
Merging to `master` triggers the existing GitHub Pages publication flow for [bhuveshkumar.com](https://bhuveshkumar.com).
Replace .gitignore with:
.DS_Store
_site/
.jekyll-cache/
.jekyll-metadata
.sass-cache/
local/
node_modules/
package-lock.json
/vendor/
.bundle/
.vscode/
- Step 4: Run the documentation/data test and build tests
Expected: all tests pass and the site builds.
- Step 5: Commit maintenance documentation
git add .gitignore README.md test/publications_data_test.rb
git commit -m "docs: explain website maintenance workflow"
Task 5: Full Verification, Local Preview, and PR Handoff
Files:
- Modify only if verification exposes a defect in files already changed by Tasks 1-4.
Interfaces:
- Consumes: completed site, test suite, and feature branch.
Produces: verified local pages, a pushed feature branch, and a PR into
master; production remains unchanged until PR merge.- Step 1: Run clean automated verification
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" ruby test/publications_data_test.rb
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" JEKYLL_ENV=production bundle exec jekyll build
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" SITE_DIR="_site" ruby test/rendered_site_test.rb
git diff --check origin/master...HEAD
git status --short --branch
Expected: tests and build pass, diff check is clean, and the worktree has no uncommitted files.
- Step 2: Review the branch diff and deletion scope
git diff --stat origin/master...HEAD
git diff --name-status origin/master...HEAD
Confirm the diff does not delete Bhuvesh-specific files under files/papers, files/resume, or pdf, except the explicitly approved tracked .DS_Store files.
- Step 3: Start a local preview
env PATH="/opt/homebrew/opt/ruby/bin:/usr/bin:/bin" bundle exec jekyll serve --host 127.0.0.1 --port 4000
Open http://127.0.0.1:4000/ and http://127.0.0.1:4000/publications/ in the Codex browser. Compare with the current live pages and verify the Training-Free paper has no link.
- Step 4: Ask for visual approval
Show the local preview to the user. Do not push until the user approves the rendered branch.
- Step 5: Push the feature branch and open a PR
After approval:
git push -u origin codex/publications-cleanup
Open a PR from codex/publications-cleanup into master. Do not merge it automatically. If GitHub.com CLI authentication remains unavailable, provide the GitHub compare URL after the branch push so the user can create the PR in their signed-in browser.
