diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index f2df881..8f53b84 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -2,7 +2,7 @@ "name": "omnirank", "version": "0.4.0", "description": "Audit any website across SEO, answer-engine and generative-engine criteria, and generate llms.txt, llms-full.txt and facts.json so AI engines can ingest it as ground truth.", - "author": { "name": "S M Moshiur Rahman", "email": "moshiur@publicpulse.com.bd" }, + "author": { "name": "S M Moshiur Rahman", "email": "moshiur@ticonsys.com" }, "homepage": "https://github.com/bemoshiur/OmniRank", "license": "MIT", "keywords": ["seo", "aeo", "geo", "smm", "llms-txt", "schema-org", "json-ld", "indexnow", "ai-search"], @@ -11,8 +11,8 @@ "displayName": "OmniRank", "shortDescription": "One page. Every engine.", "longDescription": "Score a site's SEO, AEO and GEO gates against its real HTML, then generate the machine-ingestible ground truth that generative engines read. Ships two skills: audit and geo-artifacts.", - "developerName": "Public Pulse Agency", + "developerName": "TICON System Limited", "capabilities": ["Read", "Write"], - "websiteURL": "https://publicpulse.com.bd" + "websiteURL": "https://ticonsys.com" } } diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index 7ca5999..c3a8d20 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -28,7 +28,7 @@ Unacceptable behaviour: ## Enforcement -Report unacceptable behaviour to **moshiur@publicpulse.com.bd**. All complaints will be +Report unacceptable behaviour to **moshiur@ticonsys.com**. All complaints will be reviewed and investigated promptly and fairly. Maintainers will respect the privacy and security of the reporter. diff --git a/.github/SECURITY.md b/.github/SECURITY.md index ad77737..a704189 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -10,7 +10,7 @@ Please do **not** open a public issue for a security problem. -Email **moshiur@publicpulse.com.bd** with a description, reproduction steps, and the impact +Email **moshiur@ticonsys.com** with a description, reproduction steps, and the impact you have assessed. You can expect an acknowledgement within 72 hours and an assessment within seven days. diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md index 8d16614..655854d 100644 --- a/.github/SUPPORT.md +++ b/.github/SUPPORT.md @@ -24,6 +24,6 @@ adapters and CI recipes. ## Commercial support -OmniRank is built at [Public Pulse Agency](https://publicpulse.com.bd), Dhaka. For -engagements, contact moshiur@publicpulse.com.bd or WhatsApp -[+880 1717 714676](https://wa.me/8801717714676). +OmniRank is built at [TICON System Limited](https://ticonsys.com), Dhaka. For +engagements, contact moshiur@ticonsys.com or connect on +[LinkedIn](https://www.linkedin.com/in/in-moshiur/). diff --git a/.github/assets/og-template.svg b/.github/assets/og-template.svg index 3b1228f..a9b19bb 100644 --- a/.github/assets/og-template.svg +++ b/.github/assets/og-template.svg @@ -200,7 +200,7 @@ - github.com/bemoshiur/OmniRank · publicpulse.com.bd + github.com/bemoshiur/OmniRank · ticonsys.com diff --git a/.github/assets/og.png b/.github/assets/og.png index ae668ee..51fcb44 100644 Binary files a/.github/assets/og.png and b/.github/assets/og.png differ diff --git a/CITATION.cff b/CITATION.cff index 6538b65..6813f05 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -5,12 +5,12 @@ type: software authors: - family-names: Rahman given-names: S M Moshiur - email: moshiur@publicpulse.com.bd - affiliation: Public Pulse Agency + email: moshiur@ticonsys.com + affiliation: TICON System Limited city: Dhaka country: BD repository-code: "https://github.com/bemoshiur/OmniRank" -url: "https://publicpulse.com.bd" +url: "https://ticonsys.com" abstract: >- OmniRank audits websites across search-engine, answer-engine and generative-engine criteria, and generates machine-ingestible ground truth diff --git a/LICENSE b/LICENSE index bc34dd0..94e8a9d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2026 S M Moshiur Rahman, Public Pulse Agency +Copyright (c) 2026 S M Moshiur Rahman Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/LICENSE-CONTENT b/LICENSE-CONTENT index 18bfe70..2734948 100644 --- a/LICENSE-CONTENT +++ b/LICENSE-CONTENT @@ -1,6 +1,6 @@ Creative Commons Attribution 4.0 International (CC BY 4.0) -Copyright (c) 2026 Public Pulse Agency +Copyright (c) 2026 S M Moshiur Rahman The documentation in this repository, and any content corpus generated and exposed through llms.txt and llms-full.txt, is licensed under CC BY 4.0. @@ -9,6 +9,6 @@ You are free to share and adapt this material for any purpose, including commercially, provided you give appropriate credit, link to the licence, and indicate if changes were made. -Attribution: Public Pulse Agency — https://publicpulse.com.bd +Attribution: S M Moshiur Rahman — https://ticonsys.com Full licence text: https://creativecommons.org/licenses/by/4.0/legalcode diff --git a/README.md b/README.md index 4226cf2..5d7bce5 100644 --- a/README.md +++ b/README.md @@ -509,23 +509,21 @@ Correlations from that research are observational, drawn largely from English-la datasets, and are treated as directional. Validate empirically per site. Built and maintained by [S M Moshiur Rahman](https://github.com/bemoshiur) at -[Public Pulse Agency](https://publicpulse.com.bd), Dhaka — across publicpulse.com.bd, -tenderpulse.com.bd and pulsetoday.com.bd. +[TICON System Limited](https://ticonsys.com), Dhaka. ## Contact -**S M Moshiur Rahman** — Director of Business & Operations, Public Pulse Agency +**S M Moshiur Rahman** — Director, Business & Operations, TICON System Limited | | | |---|---| -| 💬 WhatsApp | **[+880 1717 714676](https://wa.me/8801717714676)** — fastest for project discussion | -| ✉️ Email | [moshiur@publicpulse.com.bd](mailto:moshiur@publicpulse.com.bd) | -| 🌐 Web | [publicpulse.com.bd](https://publicpulse.com.bd) | +| 💼 LinkedIn | [in/in-moshiur](https://www.linkedin.com/in/in-moshiur/) | +| ✉️ Email | [moshiur@ticonsys.com](mailto:moshiur@ticonsys.com) | +| 🌐 Web | [ticonsys.com](https://ticonsys.com) | | 💻 GitHub | [@bemoshiur](https://github.com/bemoshiur) | For bugs and feature requests, use [Issues](https://github.com/bemoshiur/OmniRank/issues/new/choose) -rather than direct message — it keeps the answer searchable for the next person. For -consulting, partnerships, or anything project-specific, WhatsApp gets the quickest reply. +rather than direct message — it keeps the answer searchable for the next person. ## Licence diff --git a/docs/configuration.md b/docs/configuration.md index 67a3e8e..270b1ad 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -324,11 +324,10 @@ This is `templates/omnirank.config.example.json`, verified to pass schema valida { "$schema": "https://raw.githubusercontent.com/bemoshiur/OmniRank/main/schemas/omnirank.config.schema.json", "site": { - "name": "The Pulse Today", - "legalName": "Public Pulse Agency", - "url": "https://pulsetoday.com.bd", - "entityType": "NewsMediaOrganization", - "parentOrganization": "Pulse Group", + "name": "TICON System Limited", + "legalName": "TICON System Limited", + "url": "https://ticonsys.com", + "entityType": "ProfessionalService", "locales": [ { "code": "bn-BD", "path": "/bn", "default": true }, { "code": "en", "path": "/en" } @@ -337,11 +336,11 @@ This is `templates/omnirank.config.example.json`, verified to pass schema valida "nap": { "city": "Dhaka", "country": "BD", - "email": "editor@pulsetoday.com.bd", + "email": "info@ticonsys.com", "geo": { "lat": 23.8103, "lng": 90.4125 } }, "sameAs": { - "facebook": "https://facebook.com/ThePulseToday", + "facebook": "https://facebook.com/TiconSystemLimited", "x": null, "linkedin": null, "youtube": null, @@ -357,14 +356,14 @@ This is `templates/omnirank.config.example.json`, verified to pass schema valida "crawlers": { "allowAI": true, "disallow": ["/manage", "/api/auth"] }, "geo": { "license": "CC-BY-4.0", - "attribution": "Public Pulse Agency", + "attribution": "TICON System Limited", "answerBlockSelector": ".answer-block" }, "audit": { "sampleSize": 200, "failOn": ["h1", "canonical", "schema"] }, - "competitors": ["prothomalo.com", "thedailystar.net", "bdnews24.com"], + "competitors": ["rivalsystems.example", "peertech.example"], "secrets": { "serpapi": "env:SERPAPI_KEY", "perplexity": "env:PERPLEXITY_API_KEY" diff --git a/docs/geo-artifacts-guide.md b/docs/geo-artifacts-guide.md index 1d48ff8..53fef34 100644 --- a/docs/geo-artifacts-guide.md +++ b/docs/geo-artifacts-guide.md @@ -136,7 +136,7 @@ a missing key under this setup. dynamic route serves the file correctly in local development every time. The failure exists only once the CDN is in the request path — i.e. only in production, and only after a deploy. This is a real production incident this project's own maintainer hit: on -publicpulse.com.bd, `/llms-full.txt` was dead for weeks while every local check passed +ticonsys.com, `/llms-full.txt` was dead for weeks while every local check passed (recorded in `skills/geo-artifacts/references/serving-gotchas.md`). **The fix: write physical files, always.** Generate `llms.txt`, `llms-full.txt`, and diff --git a/docs/wiki/Configuration-Reference.md b/docs/wiki/Configuration-Reference.md index 4b486c5..b919abc 100644 --- a/docs/wiki/Configuration-Reference.md +++ b/docs/wiki/Configuration-Reference.md @@ -272,15 +272,15 @@ This is `templates/omnirank.config.example.json`, verified to pass schema valida { "$schema": "https://raw.githubusercontent.com/bemoshiur/OmniRank/main/schemas/omnirank.config.schema.json", "site": { - "name": "The Pulse Today", - "legalName": "Public Pulse Agency", - "url": "https://pulsetoday.com.bd", - "entityType": "NewsMediaOrganization", + "name": "TICON System Limited", + "legalName": "TICON System Limited", + "url": "https://ticonsys.com", + "entityType": "ProfessionalService", "locales": [{ "code": "bn-BD", "path": "/bn", "default": true }] }, "geo": { "license": "CC-BY-4.0", - "attribution": "Public Pulse Agency", + "attribution": "TICON System Limited", "answerBlockSelector": ".answer-block" }, "audit": { diff --git a/docs/wiki/Home.md b/docs/wiki/Home.md index f924c16..cbc6985 100644 --- a/docs/wiki/Home.md +++ b/docs/wiki/Home.md @@ -136,5 +136,5 @@ answered directly. | Source repository | [github.com/bemoshiur/OmniRank](https://github.com/bemoshiur/OmniRank) | | Documentation (in-repo) | [docs/](https://github.com/bemoshiur/OmniRank/tree/main/docs) | | Issues | [github.com/bemoshiur/OmniRank/issues](https://github.com/bemoshiur/OmniRank/issues/new/choose) | -| Maintainer | [S M Moshiur Rahman](https://github.com/bemoshiur), Public Pulse Agency, Dhaka | +| Maintainer | [S M Moshiur Rahman](https://github.com/bemoshiur), TICON System Limited, Dhaka | | Licence | Code [MIT](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE) · Content [CC BY 4.0](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE-CONTENT) | diff --git a/docs/wiki/_Footer.md b/docs/wiki/_Footer.md index 232b981..a187684 100644 --- a/docs/wiki/_Footer.md +++ b/docs/wiki/_Footer.md @@ -1 +1 @@ -[OmniRank](https://github.com/bemoshiur/OmniRank) · maintained by [S M Moshiur Rahman](https://github.com/bemoshiur) at [Public Pulse Agency](https://publicpulse.com.bd), Dhaka · Code [MIT](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE), docs [CC BY 4.0](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE-CONTENT) · v0.4.0 ships two skills plus the `fix` diff preview; the rest is [[Roadmap]] +[OmniRank](https://github.com/bemoshiur/OmniRank) · maintained by [S M Moshiur Rahman](https://github.com/bemoshiur) at [TICON System Limited](https://ticonsys.com), Dhaka · Code [MIT](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE), docs [CC BY 4.0](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE-CONTENT) · v0.4.0 ships two skills plus the `fix` diff preview; the rest is [[Roadmap]] diff --git a/scripts/node/src/generate.test.ts b/scripts/node/src/generate.test.ts index 8eda6f5..846e01d 100644 --- a/scripts/node/src/generate.test.ts +++ b/scripts/node/src/generate.test.ts @@ -15,21 +15,21 @@ import { const config: OmniRankConfig = { site: { name: "X Example", - legalName: "Public Pulse Agency", + legalName: "TICON System Limited", url: "https://x.example", entityType: "NewsMediaOrganization", }, nap: { city: "Dhaka", country: "BD" }, identifiers: { bin: "123456" }, sameAs: { facebook: "https://facebook.com/x", linkedin: null, wikidata: null }, - geo: { license: "CC-BY-4.0", attribution: "Public Pulse Agency" }, + geo: { license: "CC-BY-4.0", attribution: "TICON System Limited" }, }; const pages: Page[] = [{ url: "https://x.example/a", title: "Political Ads", description: "Campaigns in Bangladesh.", - answer: "Public Pulse runs political Facebook advertising in Bangladesh.", + answer: "TICON System Limited runs political Facebook advertising in Bangladesh.", }]; describe("buildLlmsTxt", () => { @@ -200,7 +200,7 @@ cfg = Config({ }) pages = [Page(url="https://x.example/a", title="Political Ads", description="Campaigns in Bangladesh.", - answer="Public Pulse runs political Facebook advertising in Bangladesh.")] + answer="TICON System Limited runs political Facebook advertising in Bangladesh.")] print(json.dumps({ "llmsTxt": build_llms_txt(cfg, pages), "llmsFull": build_llms_full(cfg, pages), diff --git a/scripts/py/pyproject.toml b/scripts/py/pyproject.toml index fa4696c..e8fb754 100644 --- a/scripts/py/pyproject.toml +++ b/scripts/py/pyproject.toml @@ -8,7 +8,7 @@ version = "0.4.0" description = "SEO, AEO, GEO and SMM growth engine" requires-python = ">=3.11" license = { text = "MIT" } -authors = [{ name = "S M Moshiur Rahman", email = "moshiur@publicpulse.com.bd" }] +authors = [{ name = "S M Moshiur Rahman", email = "moshiur@ticonsys.com" }] dependencies = [ "httpx>=0.27", "beautifulsoup4>=4.12", diff --git a/scripts/setup-repo.sh b/scripts/setup-repo.sh index 8316c0c..b82a229 100755 --- a/scripts/setup-repo.sh +++ b/scripts/setup-repo.sh @@ -10,7 +10,7 @@ set -euo pipefail REPO="bemoshiur/OmniRank" -HOMEPAGE="https://publicpulse.com.bd" +HOMEPAGE="https://ticonsys.com" DESCRIPTION="OmniRank -- SEO / AEO / GEO / SMM growth engine for Claude Code and Cursor. v0.1.0 ships two skills: audit (score SEO, AEO, GEO and crawl-hygiene gates) and geo-artifacts (generate llms.txt, llms-full.txt and facts.json for AI crawlers). More on the roadmap." TOPICS=( diff --git a/skills/geo-artifacts/references/facts-json.md b/skills/geo-artifacts/references/facts-json.md index 22e9435..f4985d0 100644 --- a/skills/geo-artifacts/references/facts-json.md +++ b/skills/geo-artifacts/references/facts-json.md @@ -6,17 +6,17 @@ Structured ground truth for engines that prefer JSON over prose. ```json { - "name": "The Pulse Today", - "url": "https://pulsetoday.com.bd", - "entityType": "NewsMediaOrganization", + "name": "TICON System Limited", + "url": "https://ticonsys.com", + "entityType": "ProfessionalService", "generatedAt": "2026-08-03T04:00:00Z", "license": "CC-BY-4.0", - "attribution": "Public Pulse Agency", - "legalName": "Public Pulse Agency", + "attribution": "TICON System Limited", + "legalName": "TICON System Limited", "locales": [{ "code": "bn-BD", "path": "/bn", "default": true }], - "nap": { "city": "Dhaka", "country": "BD", "email": "editor@pulsetoday.com.bd" }, + "nap": { "city": "Dhaka", "country": "BD", "email": "info@ticonsys.com" }, "identifiers": { "bin": "123456", "tradeLicense": "789012" }, - "sameAs": ["https://facebook.com/ThePulseToday"], + "sameAs": ["https://facebook.com/TiconSystemLimited"], "statistics": [ { "name": "Average CPM, political FB ads, Dhaka", "value": "BDT 42", "unit": "BDT", "sampleSize": 118, diff --git a/skills/geo-artifacts/references/serving-gotchas.md b/skills/geo-artifacts/references/serving-gotchas.md index c30537e..2b5c90d 100644 --- a/skills/geo-artifacts/references/serving-gotchas.md +++ b/skills/geo-artifacts/references/serving-gotchas.md @@ -11,7 +11,7 @@ routes. A dynamic route at that path is never reached; S3 answers for a key that exist, and returns 403 rather than 404. **Why it goes unnoticed:** local `next dev` has no CDN, so the dynamic route serves fine. -The failure exists only in production. On publicpulse.com.bd this left `/llms-full.txt` +The failure exists only in production. On ticonsys.com this left `/llms-full.txt` dead for weeks while every local check passed. **Fix:** write the file physically into `publicDir` at build time so S3 has a real object diff --git a/templates/omnirank.config.example.json b/templates/omnirank.config.example.json index ab6f96a..84731f9 100644 --- a/templates/omnirank.config.example.json +++ b/templates/omnirank.config.example.json @@ -1,11 +1,10 @@ { "$schema": "https://raw.githubusercontent.com/bemoshiur/OmniRank/main/schemas/omnirank.config.schema.json", "site": { - "name": "The Pulse Today", - "legalName": "Public Pulse Agency", - "url": "https://pulsetoday.com.bd", - "entityType": "NewsMediaOrganization", - "parentOrganization": "Pulse Group", + "name": "TICON System Limited", + "legalName": "TICON System Limited", + "url": "https://ticonsys.com", + "entityType": "ProfessionalService", "locales": [ { "code": "bn-BD", "path": "/bn", "default": true }, { "code": "en", "path": "/en" } @@ -14,11 +13,11 @@ "nap": { "city": "Dhaka", "country": "BD", - "email": "editor@pulsetoday.com.bd", + "email": "info@ticonsys.com", "geo": { "lat": 23.8103, "lng": 90.4125 } }, "sameAs": { - "facebook": "https://facebook.com/ThePulseToday", + "facebook": "https://facebook.com/TiconSystemLimited", "x": null, "linkedin": null, "youtube": null, @@ -34,22 +33,14 @@ "crawlers": { "allowAI": true, "disallow": ["/manage", "/api/auth"] }, "geo": { "license": "CC-BY-4.0", - "attribution": "Public Pulse Agency", + "attribution": "TICON System Limited", "answerBlockSelector": ".answer-block" }, - "aeo": { - "answerBlock": { - "default": { "unit": "words", "min": 40, "max": 60 }, - "byScript": { - "cjk": { "unit": "chars", "min": 80, "max": 200 } - } - } - }, "audit": { "sampleSize": 200, "failOn": ["h1", "canonical", "schema"] }, - "competitors": ["prothomalo.com", "thedailystar.net", "bdnews24.com"], + "competitors": ["rivalsystems.example", "peertech.example"], "secrets": { "serpapi": "env:SERPAPI_KEY", "perplexity": "env:PERPLEXITY_API_KEY" diff --git a/tests/fixtures/aeo_clean.html b/tests/fixtures/aeo_clean.html index b538220..320ee15 100644 --- a/tests/fixtures/aeo_clean.html +++ b/tests/fixtures/aeo_clean.html @@ -9,10 +9,10 @@

Political Facebook Advertising in Bangladesh

- Public Pulse runs political Facebook advertising across Bangladesh for parties, candidates - and advocacy groups. The agency handles audience research, creative production, compliance - review and daily budget management, then reports reach, cost per result and sentiment in - Bangladeshi taka so campaign teams can decide quickly what actually works. + TICON System Limited runs political Facebook advertising across Bangladesh for parties, + candidates and advocacy groups. The company handles audience research, creative production, + compliance review and daily budget management, then reports reach, cost per result and + sentiment in Bangladeshi taka so campaign teams can decide quickly what actually works.
What does it cost?
Campaigns start at BDT 50,000 monthly.
diff --git a/tests/fixtures/clean.html b/tests/fixtures/clean.html index ec7fd8c..c1dff8b 100644 --- a/tests/fixtures/clean.html +++ b/tests/fixtures/clean.html @@ -2,7 +2,7 @@ Political Facebook Advertising in Bangladesh - + diff --git a/tests/test_community_health.py b/tests/test_community_health.py index e95eae6..d6a5dc8 100644 --- a/tests/test_community_health.py +++ b/tests/test_community_health.py @@ -29,7 +29,7 @@ def test_issue_templates_are_valid_yaml(): def test_security_policy_names_a_contact(): - assert "publicpulse.com.bd" in (GH / "SECURITY.md").read_text() + assert "ticonsys.com" in (GH / "SECURITY.md").read_text() def test_contributing_forbids_fabricated_data(): diff --git a/tests/test_gates_geo.py b/tests/test_gates_geo.py index fc81704..179f33a 100644 --- a/tests/test_gates_geo.py +++ b/tests/test_gates_geo.py @@ -47,7 +47,7 @@ > Bangladesh digital agency. ## How to cite us -Content licensed CC BY 4.0. Attribution: Public Pulse Agency. +Content licensed CC BY 4.0. Attribution: TICON System Limited. """ diff --git a/tests/test_gates_seo.py b/tests/test_gates_seo.py index 331a5b1..bf001af 100644 --- a/tests/test_gates_seo.py +++ b/tests/test_gates_seo.py @@ -59,9 +59,9 @@ def test_missing_title_is_an_error(): def test_long_description_is_a_warning(): - html = clean().replace('content="Public Pulse runs compliant political Facebook campaigns ' - 'across Bangladesh with transparent BDT reporting and verified ' - 'audience targeting."', + html = clean().replace('content="TICON System Limited runs compliant political Facebook ' + 'campaigns across Bangladesh with transparent BDT reporting and ' + 'verified audience targeting."', f'content="{"a" * 161}"') found = [f for f in seo.run(html, URL) if f.id == "seo.description.long"] assert found and found[0].gate == "description-length" @@ -110,7 +110,7 @@ def test_uppercase_meta_description_name_is_not_flagged_missing(): def test_meta_description_genuinely_absent_is_still_flagged(): html = clean().replace( - '', "") found = [f for f in seo.run(html, URL) if f.id == "seo.description.missing"] diff --git a/tests/test_geo_artifacts.py b/tests/test_geo_artifacts.py index d53d516..5716e10 100644 --- a/tests/test_geo_artifacts.py +++ b/tests/test_geo_artifacts.py @@ -15,7 +15,7 @@ PAGE_HTML = """ Political Ads

Political Ads

-
Public Pulse runs political Facebook advertising in Bangladesh.
+
TICON System Limited runs political Facebook advertising in Bangladesh.
""" SITEMAP = ('https://x.example/a' @@ -24,19 +24,19 @@ def cfg() -> Config: return Config({ - "site": {"name": "X Example", "legalName": "Public Pulse Agency", + "site": {"name": "X Example", "legalName": "TICON System Limited", "url": SITE, "entityType": "NewsMediaOrganization"}, "nap": {"city": "Dhaka", "country": "BD", "email": "e@x.example"}, "identifiers": {"bin": "123456"}, "sameAs": {"facebook": "https://facebook.com/x", "linkedin": None, "wikidata": None}, - "geo": {"license": "CC-BY-4.0", "attribution": "Public Pulse Agency"}, + "geo": {"license": "CC-BY-4.0", "attribution": "TICON System Limited"}, }) PAGES = [Page(url=f"{SITE}/a", title="Political Ads", description="Campaigns in Bangladesh.", - answer="Public Pulse runs political Facebook advertising in Bangladesh.")] + answer="TICON System Limited runs political Facebook advertising in Bangladesh.")] @respx.mock @@ -55,7 +55,7 @@ def test_llms_txt_has_header_pages_and_licence(): assert "https://x.example/a" in out assert "## How to cite us" in out assert "CC-BY-4.0" in out - assert "Public Pulse Agency" in out + assert "TICON System Limited" in out def test_llms_txt_prefers_answer_blocks_when_quoting(): @@ -64,7 +64,7 @@ def test_llms_txt_prefers_answer_blocks_when_quoting(): def test_llms_full_contains_answer_bodies(): out = build_llms_full(cfg(), PAGES) - assert "Public Pulse runs political Facebook advertising" in out + assert "TICON System Limited runs political Facebook advertising" in out assert "## How to cite us" in out @@ -223,7 +223,7 @@ def test_real_license_behaviour_unchanged(): out = build_llms_txt(cfg(), PAGES) assert "## How to cite us" in out assert ("Content is licensed CC-BY-4.0. When quoting, attribute to " - "Public Pulse Agency and link the source URL.") in out + "TICON System Limited and link the source URL.") in out facts = build_facts(cfg()) assert facts["license"] == "CC-BY-4.0" diff --git a/tests/test_repo_docs.py b/tests/test_repo_docs.py index 5603542..c35d8d5 100644 --- a/tests/test_repo_docs.py +++ b/tests/test_repo_docs.py @@ -47,8 +47,8 @@ def test_readme_has_contact_section(): body = (ROOT / "README.md").read_text() assert "## Contact" in body assert "S M Moshiur Rahman" in body - assert "moshiur@publicpulse.com.bd" in body - assert "https://wa.me/8801717714676" in body + assert "moshiur@ticonsys.com" in body + assert "https://www.linkedin.com/in/in-moshiur/" in body def test_citation_names_the_full_author_name(): @@ -61,7 +61,7 @@ def test_plugin_manifest_author_matches_citation(): import json manifest = json.loads((ROOT / ".claude-plugin" / "plugin.json").read_text()) assert manifest["author"]["name"] == "S M Moshiur Rahman" - assert manifest["author"]["email"] == "moshiur@publicpulse.com.bd" + assert manifest["author"]["email"] == "moshiur@ticonsys.com" def test_readme_links_the_skill_zip_download(): diff --git a/tests/test_setup_repo.py b/tests/test_setup_repo.py index 4f34c26..3e9e17a 100644 --- a/tests/test_setup_repo.py +++ b/tests/test_setup_repo.py @@ -34,8 +34,8 @@ def test_topics_are_valid_slugs(): assert re.fullmatch(r"[a-z0-9][a-z0-9-]{0,34}", topic), f"invalid topic: {topic}" -def test_homepage_is_publicpulse(): - assert "https://publicpulse.com.bd" in SCRIPT.read_text() +def test_homepage_is_ticonsys(): + assert "https://ticonsys.com" in SCRIPT.read_text() def test_script_documents_manual_steps():