Skip to main content

Reflective-writing analysis — metacognition, criticality, depth (Moon-style bands)

Project description

reflection-analyser

Reflective-writing analysis — the lens-family member that reads a learning journal / reflection / portfolio entry as reflection, not just as prose.

document-analyser reads readability; this reads reflective depth. Different signals from the same words. Explicit-only (auto_routable: false) — same pattern as conversation-analyser: text and prose extensions auto-route to document-analyser; invoke reflection-analyser deliberately when you want the reflective-depth interpretation.

Built around the markers commonly used in reflective-writing rubrics (Moon's depth scale, Gibbs' reflective cycle, the SOLO taxonomy): metacognition, criticality, evidence linkage, affect language, and forward-looking action.

Install

pip install reflection-analyser

Optional: read .pdf / .docx / .pptx journals (otherwise plain-text / .md only):

pip install 'reflection-analyser[documents]'

Use

Python:

from reflection_analyser import ReflectionAnalyser

# From text directly
result = ReflectionAnalyser().analyse_text("Looking back, I realised that…")

# From a file (composes on document-analyser for binary docs when [documents] is installed)
result = ReflectionAnalyser().analyse("journal.md")
result = ReflectionAnalyser().analyse("journal.docx")  # requires [documents]

print(result.depth_band)               # "dialogic"
print(result.composite_depth_score)    # 0.62
print(result.metacognition.count)      # 7
print(result.criticality.count)        # 3

CLI:

reflection-analyser journal.md
reflection-analyser journal.txt --json
reflection-analyser journal.docx                 # needs [documents] extra
echo "Looking back…" | reflection-analyser -
reflection-analyser serve
reflection-analyser manifest

HTTP (reflection-analyser serve on port 8015):

curl -F file=@journal.md http://localhost:8015/analyse

Signals

For a piece of reflective writing:

  • Metacognition — first-person + cognitive verbs (I realised, I noticed, looking back, on reflection). Surface depth indicator.
  • Criticality — contrast/qualification phrases (however, in contrast, that said, on the other hand). Marker of dialogic vs descriptive reflection.
  • Evidence — references to specific moments, sources, dates, quotes — proper-noun and citation density. Concrete vs abstract.
  • Affect — emotion words (frustrated, surprised, confident, uncertain). Too few = clinical; presence indicates engagement.
  • Action / forward-lookingnext time, going forward, I will, future-tense intent. Marker of transformative reflection.

Composite depth score (0–1) combines per-marker coverages; mapped to a Moon-style band:

Band Score Description
descriptive 0.0–0.25 "What happened" only — events recounted, little interpretation
dialogic 0.25–0.5 Some self-questioning + critical thought
critical 0.5–0.75 Multiple perspectives, evidence linkage, qualification
transformative 0.75–1.0 Forward-looking insight, evidence-linked, change-oriented

The score is a signal, not a grade — it's meant to inform human judgement, not replace it.

The family

What you want Use
Document text + readability document-analyser
Reflective depth on that text reflection-analyser (this)
Human-AI conversation analysis conversation-analyser
Any file → right engine auto-analyser

Limits

  • Lexicon-based v1 — fast, transparent, but catches phrasing not meaning. A reflective sentence without our trigger words underscores; a non-reflective sentence with I realised overscores.
  • English-only for v1.
  • Calibrated against generic reflective-writing rubrics; tune the band thresholds in _BAND_THRESHOLDS for your unit's specific rubric if needed.
  • Vision/LLM-augmented depth scoring is a possible follow-on; not in v1.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reflection_analyser-0.1.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reflection_analyser-0.1.0-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file reflection_analyser-0.1.0.tar.gz.

File metadata

  • Download URL: reflection_analyser-0.1.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for reflection_analyser-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1f6feaf32f6c3fe93227895e7ad7906698869071c75c61bb044908a54d13bf5c
MD5 d4a1b147eb6e335d65dd49283607ed5e
BLAKE2b-256 0755d74f6c52925c6ee49989f528054caaa0393ddcdaa1c2f8de03e2a167d225

See more details on using hashes here.

File details

Details for the file reflection_analyser-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for reflection_analyser-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a6d6dfc3fd509f3982841f8c7262b132924878b1360ccff4b6644c1b2b001d5a
MD5 62a415c0876806d902b49353e729ef74
BLAKE2b-256 25ca4dedd55000ffb85b81e381ba9fc9ff2fd343aad0852acd52e7911e84941e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page