tlb-natural-text-to-table skill

Skill that turns lists, meeting logs and notes with repeated records into TileLineBase tables for Obsidian.

  • 149 ★ on the repository
  • Last commit
  • MIT
Skill

Minimal access

Why this level

  • The skill only builds markdown text from your source and runs nothing.
All reasons and checks

campfirium/obsidian-tile-line-base

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/tlb-natural-text-to-table

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Minimal accessThe tool runs nothing and makes no network calls.

  • The skill only builds markdown text from your source and runs nothing.

This is third-party code. Review the repository files before installing.

What it does

The tlb-natural-text-to-table skill ships in the repository of the TileLineBase plugin for Obsidian. It takes text with repeated records (tasks, people, events, requirement items, statuses) and returns clean TileLineBase markdown: each table row becomes a `## entry: ...` block with `field: value` lines. The default schema is minimal: `entry`, optional `description` and `TLBparent` for child rows. The skill writes field names in English, keeps values in the source language and does not invent missing ones. If the text mixes record shapes or has no repeated units, it proposes a smaller slice or asks you to choose the row unit.

Who it is for. Obsidian users with the TileLineBase plugin who keep tasks, contacts or meeting logs and want to load them into tables with one agent command.

Good fit when

  • A meeting log with tasks and owners becomes a table with statuses.
  • A release list with name, type, owner and date moves into rows.
  • A two-level hierarchical list splits into parent and child rows.
  • An export of notes about candidates or clients is normalized to one field schema.

Not a fit when

  • The text is a continuous essay with no repeated units: no table comes out of it.
  • The TileLineBase plugin is not installed in Obsidian: the `## field: value` row format is built for that plugin.
  • You need trees of three levels or deeper: the design targets two levels.

Example request

Turn this meeting log into a TileLineBase table: entry and description fields, subtasks as child rows.

Limitations

The skill prepares table text, while the TileLineBase plugin itself is installed in Obsidian separately. The default schema is limited to `entry`, `description` and `TLBparent`; extra fields appear only on direct request. Hierarchy targets two levels, and deeper chains flatten with loss. Values are neither translated nor guessed: empty cells stay empty. For mixed sources the skill may stop and ask about the row unit.

How to disable. Delete the skill folder from the agent skills directory. Tables already created in Obsidian notes stay as ordinary markdown.

FAQ

What does a TileLineBase row look like?

It is a block: a heading `## entry: Write post` with `description: Needs final screenshot` underneath. The first field is shared by every row.

What is TLBparent?

A helper field of a child row holding the parent primary value. Parent rows do not have it, and the value must match the parent exactly.

Does the skill translate values?

No. Values stay in the source language, and only field names added by the skill are written in English.

What happens when the text has no repeated records?

The skill proposes a smaller slice or asks which unit counts as a row instead of inventing a table.

Is the Obsidian plugin required?

Yes. The skill prepares blocks for TileLineBase, while the plugin itself builds tables, kanban and slides from them.

Discussion

No questions or reviews yet.

Skills

A skill that turns PDFs, docs and a codebase into an Obsidian study vault: structured notes for self-study

SkillExtended access1.4KRepository stars

Obsidian skills

Obsidian Skills

Skills for agents working with Obsidian: Markdown with wikilinks, Bases, JSON Canvas, Obsidian CLI, Defuddle and Knap

SkillExtended access52.2KRepository stars

Eight Claude Code skills for Obsidian: Granola notes, NotebookLM imports, TaskNotes tasks, recall of past sessions, chat export

PluginExtended access552Repository stars

A skill that analyzes materials and subtitles, checks facts against sources and keeps a personal library in a local folder.

SkillMinimal access98Repository stars

An OpenClaw skill for DingTalk AI tables via mcporter: creates bases, reads the schema and adds rows and fields in bulk.

SkillExtended access110Repository stars

A skill that turns Douyin videos and photo posts into topic notes in Obsidian with local transcription and an index.

SkillBroad access206Repository stars

README in short

The TileLineBase plugin keeps a database inside markdown notes with no frontmatter or code: tables, kanban, gallery and slides are built from the same records. It also has hierarchical rows, formulas, date parsing and a built-in GTD workflow.

README badge

Original SKILL.md

---
name: tlb-natural-text-to-table
description: Convert structured natural-language notes, bullet lists, meeting logs, outlines, and semi-structured Markdown into clean TileLineBase table Markdown. Use when the user asks to turn natural text into TLB, convert prose or bullets into table blocks, restructure notes into TileLineBase rows, or extract repeated records into H2 key-value rows.
---

# TLB Natural Text To Table

Use this skill when the input is not yet a TileLineBase table, but it already contains repeated, recognizable records such as tasks, people, events, inventory items, requirements, or status updates.

## Completion standard

The task is complete only when all of these are true:

- The output is valid TileLineBase row content built from repeated `## field: value` blocks.
- The first field name is consistent across every row. For hierarchical output, use one shared primary field such as `entry`.
- Skill-added field names are written in English. Values extracted from the source keep the source language.
- Parent-child output uses `TLBparent:` on child rows only. This helper field is for the Conversion Assistant and should not be treated as a visible business field.
- Default output uses a minimal schema: `entry`, optional `description`, and optional `TLBparent`.
- Do not introduce extra fields unless the user explicitly asks for them.
- Values come from the source text; weak guesses are avoided.
- Noise, commentary, and one-off prose are either omitted or called out before conversion.
- If the source mixes multiple record shapes that should not share one table, split them or stop and ask.

## Required output shape

TileLineBase row data uses one H2 block per row:

```md
## entry: Write launch post
description: Needs final screenshot
```

Rules:

- The first line of each row must start with `## `.
- The first field should be one shared primary label for every row. Prefer a general English field such as `entry` unless the user explicitly asks for another stable field name.
- Follow with flat `field: value` lines.
- If the source contains parent-child structure, keep the same primary field on both parent and child rows, and add `TLBparent: <parent primary value>` on child rows only.
- By default, only use these skill-added field names: `entry`, `description`, `TLBparent`.
- Do not translate extracted values. Preserve the source language in row titles and field values.
- Keep one field name spelling across all rows.
- Use an empty value only when the field is truly missing and a shared schema matters.
- Do not add free text between rows.

Read [references/examples.md](references/examples.md) only when you need concrete patterns.

Report a problem